Data File Reference: Difference between revisions

From HLKitWiki
Jump to navigationJump to search
 
(5 intermediate revisions by 2 users not shown)
Line 9: Line 9:
This section outlines the structure and mechanics for writing a definition file.
This section outlines the structure and mechanics for writing a definition file.


{{important}}This section utilizes [[Conventions Used in Reference Section|critical notational conventions]] that should be reviewed.
{{important}}This section utilizes [[Kit Reference#conventions|critical notational conventions]] that should be reviewed.


{{important}}Just because you '''can''' put numerous different elements in the same file does not mean you '''should''' do so. Keeping your data files small and focused will also keep them much more manageable, so break up all the information across files where appropriate. See the Skeleton data files for examples of this.
{{important}}Just because you '''can''' put numerous different elements in the same file does not mean you '''should''' do so. Keeping your data files small and focused will also keep them much more manageable, so break up all the information across files where appropriate. See the Skeleton data files for examples of this.
Line 28: Line 28:


:{| class="infotable"
:{| class="infotable"
|class="leftnormal"|{{flalt|Procedure Element (Data)|procedure}}
|class="leftnormal"|{{flalt|LoadOnce Element (Data)|loadonce}}
|A single "loadonce" element may appear as defined by the given link. This element allows you to conditionally exclude files from being loaded if a similar file has already been loaded.
|-
|{{flalt|FileInfo Element (Data)|fileinfo}}
|A single "fileinfo" element may appear as defined by the given link. This element specifies information about the data file and its author.
|-
|{{flalt|FileConstants Element (Data)|fileconstants}}
|A single "fileconstants" element may appear as defined by the given link. This element specifies constant information that affects the whole data file.
|-
|{{flalt|Procedure Element (Data)|procedure}}
|Zero or more "procedure" elements may appear as defined by the given link. This element specifies a collection of procedures that may be called by scripts throughout the data files.
|Zero or more "procedure" elements may appear as defined by the given link. This element specifies a collection of procedures that may be called by scripts throughout the data files.
|-
|{{flalt|Action Element (Data)|action}}
|Zero or more "action" elements may appear as defined by the given link. This element specifies a collection of actions that may be invoked throughout the data files.
|-
|-
|{{flalt|Thing Element (Data)|thing}}
|{{flalt|Thing Element (Data)|thing}}
Line 51: Line 63:
|{{flalt|Sheet Element (Data)|sheet}}
|{{flalt|Sheet Element (Data)|sheet}}
|Zero or more "sheet" elements may appear as defined by the given link. This element specifies a variety of sheets that will be used for printouts within dossiers.
|Zero or more "sheet" elements may appear as defined by the given link. This element specifies a variety of sheets that will be used for printouts within dossiers.
|-
|{{flalt|TableDef Element (Data)|tabledef}}
|Zero or more "tabledef" elements may appear as defined by the given link. This element specifies a variety of tables that will be used throughout the data files.
|-
|-
|{{flalt|Dossier Element (Data)|dossier}}
|{{flalt|Dossier Element (Data)|dossier}}
Line 57: Line 72:
|{{flalt|Hidden Element (Data)|hidden}}
|{{flalt|Hidden Element (Data)|hidden}}
|Zero or more "hidden" elements may appear as defined by the given link. This element identifies things that HL should remove from use within the game system.
|Zero or more "hidden" elements may appear as defined by the given link. This element identifies things that HL should remove from use within the game system.
|-
|{{flalt|Preclude Element (Data)|preclude}}
|Zero or more "preclude" elements may appear as defined by the given link. This element identifies things that HL should preclude from use if certain sources are specified.
|-
|{{flalt|Input Thing Group Element (Data)|inputthinggroup}}
|Zero or more "inputthinggroup" elements may appear as defined by the given link. This element identifies groups of input things that are shown in the editor.
|-
|-
|{{flalt|Edit Thing Element (Data)|editthing}}
|{{flalt|Edit Thing Element (Data)|editthing}}
|Zero or more "editthing" elements may appear as defined by the given link. This element specifies a variety of elements that enable use of the integrated Editor for creation of things.
|Zero or more "editthing" elements may appear as defined by the given link. This element specifies a variety of elements that enable use of the integrated Editor for creation of things.
|-
|{{flalt|Loadmods Element (Data)|loadmods}}
|An optional "loadmods" element may appear as defined by the given link. This element specifies ways to adjust old saved portfolios to new versions of the data files.
|-
|-
|{{flalt|FAQ Element (Data)|faq}}
|{{flalt|FAQ Element (Data)|faq}}
|Zero or more "faq" elements may appear as defined by the given link. This element specifies various FAQ entries that will be included within the FAQ page for the game system.
|Zero or more "faq" elements may appear as defined by the given link. This element specifies various FAQ entries that will be included within the FAQ page for the game system.
|-
|{{flalt|ExtThing Element (Data)|extthing}}
|Zero or more "extthing" elements may appear as defined by the given link. This element specifies additional tags which may be added to the specified things.
|-
|-
|}
|}
==DTD==
To edit data files in your XML editor, you can use the [[Data File DTD|Data File DTD here]].

Latest revision as of 20:47, 10 November 2017

Context: HL Kit … Kit Reference 

Overview

The data file is where you'll be defining all of the top-level elements that the user will directly control. This includes visual elements like panels, layouts, templates, and portals. It also includes game system elements like things.

All data files have the ".dat" file extension and are loaded after all of the structural files have defined the framework for the game system.

This section outlines the structure and mechanics for writing a definition file.

IMPORTANT! This section utilizes critical notational conventions that should be reviewed.

IMPORTANT! Just because you can put numerous different elements in the same file does not mean you should do so. Keeping your data files small and focused will also keep them much more manageable, so break up all the information across files where appropriate. See the Skeleton data files for examples of this.

Structural Composition

The overall file structure is that of a standard XML file. The file must start with an XML version element in the form: "<?xml version="1.0"?>". Following this, the top-level XML element must be a "document" and it must have a "signature" attribute containing the explicit value "Hero Lab Data".

The following table defines the attributes for a "document" element.

signature Text – Must be the value "Hero Lab Data".

Within the document element, every data file possesses the following child elements, appearing in the sequence given and with the names specified.

loadonce A single "loadonce" element may appear as defined by the given link. This element allows you to conditionally exclude files from being loaded if a similar file has already been loaded.
fileinfo A single "fileinfo" element may appear as defined by the given link. This element specifies information about the data file and its author.
fileconstants A single "fileconstants" element may appear as defined by the given link. This element specifies constant information that affects the whole data file.
procedure Zero or more "procedure" elements may appear as defined by the given link. This element specifies a collection of procedures that may be called by scripts throughout the data files.
action Zero or more "action" elements may appear as defined by the given link. This element specifies a collection of actions that may be invoked throughout the data files.
thing Zero or more "thing" elements may appear as defined by the given link. This element specifies various thing objects for use within the game system.
portal Zero or more "portal" elements may appear as defined by the given link. This element specifies an assortment of portals for use within layouts.
template Zero or more "template" elements may appear as defined by the given link. This element specifies an assortment of templates for use within layouts.
layout Zero or more "layout" elements may appear as defined by the given link. This element specifies an assortment of layouts for use within panels, forms, and sheets.
panel Zero or more "panel" elements may appear as defined by the given link. This element specifies a variety of panels that will be presented to the user as part of the game system.
form Zero or more "form" elements may appear as defined by the given link. This element specifies a variety of forms that will be presented to the user as part of the game system.
sheet Zero or more "sheet" elements may appear as defined by the given link. This element specifies a variety of sheets that will be used for printouts within dossiers.
tabledef Zero or more "tabledef" elements may appear as defined by the given link. This element specifies a variety of tables that will be used throughout the data files.
dossier Zero or more "dossier" elements may appear as defined by the given link. This element specifies a collection of dossiers that the user can select for character output.
hidden Zero or more "hidden" elements may appear as defined by the given link. This element identifies things that HL should remove from use within the game system.
preclude Zero or more "preclude" elements may appear as defined by the given link. This element identifies things that HL should preclude from use if certain sources are specified.
inputthinggroup Zero or more "inputthinggroup" elements may appear as defined by the given link. This element identifies groups of input things that are shown in the editor.
editthing Zero or more "editthing" elements may appear as defined by the given link. This element specifies a variety of elements that enable use of the integrated Editor for creation of things.
loadmods An optional "loadmods" element may appear as defined by the given link. This element specifies ways to adjust old saved portfolios to new versions of the data files.
faq Zero or more "faq" elements may appear as defined by the given link. This element specifies various FAQ entries that will be included within the FAQ page for the game system.
extthing Zero or more "extthing" elements may appear as defined by the given link. This element specifies additional tags which may be added to the specified things.

DTD

To edit data files in your XML editor, you can use the Data File DTD here.