Definition Type Element
Name base-rules
Abstract False
MinOccurs 0
MaxOccurs (1)
Documentation Game system base rule definition.
XSD Schema Character Sheet Definition.xsd
XSD Schema Diagram
XSD Schema Code
<xs:element minOccurs="0" name="base-rules" >
  <xs:annotation>
    <xs:documentation>Game system base rule definition.</xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:sequence>
      <xs:element minOccurs="0" default="false" name="no-special-initiative-handling" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag to indicate that the program should not treat expressions of type &quot;init&quot; in any special way.  By default, expressions of type &quot;init&quot; will be moved from wherever they are encountered and placed in a more strategic location for easy access.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" default="false" name="special-icon-effect-handling" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag to indicate that the program should treat Icon Effects with a duration of &quot;1.0&quot; specially.  Essentially, if this flag is set and an Icon Effect is created during combat, the ID of the current Icon will be stored with the effect.  When that Icon's initiative comes around again, the Effect's remaining time will be adjusted to zero.  This allows you to create effects that last for precisely one round, no matter how many Icons are added to or removed from initiative during the course of a round.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="init-def">
        <xs:annotation>
          <xs:documentation>Definition of rules governing how initiative is handled.</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="round-duration" type="xs:integer">
              <xs:annotation>
                <xs:documentation>The duration, in seconds, of a single combat round.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" name="resolve-init-conflict" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of a field where the program should look for a hint about resolving identical initiative values.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" default="false" name="init-high-to-low" type="xs:boolean">
              <xs:annotation>
                <xs:documentation>Flag to indicate that initiative should progress from highest initiative roll to lowest roll.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" name="combat-start-sound" type="xs:string">
              <xs:annotation>
                <xs:documentation>The name of the sound to play when combat is started.  This value is expressed as a relative path name beneath the &quot;data location.&quot;  Therefore, you would specify it as &quot;sounds/combat_start.wav&quot; instead of &quot;/Data/Location/Folder/sounds/combat_start.wav.&quot;</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" name="init-sound" type="xs:string">
              <xs:annotation>
                <xs:documentation>The name of the sound to play when initiative changes.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" name="round-sound" type="xs:string">
              <xs:annotation>
                <xs:documentation>The name of the sound to play when the round changes.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="1" default="true" name="init-low-to-high" type="xs:boolean">
              <xs:annotation>
                <xs:documentation>Flag indicating that initiative should proceed from lowest initiative roll to highest roll.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="1" name="segments">
              <xs:annotation>
                <xs:documentation>For game systems that use combat segments instead of initiative values, you can define the segments here.</xs:documentation>
              </xs:annotation>

              <xs:complexType>
                <xs:sequence>
                  <xs:element minOccurs="0" maxOccurs="unbounded" name="segment">
                    <xs:annotation>
                      <xs:documentation>An individual segment in a list of segments.</xs:documentation>
                    </xs:annotation>

                    <xs:complexType>
                      <xs:sequence>
                        <xs:element minOccurs="1" maxOccurs="1" name="name" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The name of the segment.</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                        <xs:element minOccurs="1" maxOccurs="1" name="value-range" type="xs:string">
                          <xs:annotation>
                            <xs:documentation>The range of values that falls within this segment.  This can be a literal value (&quot;1&quot;), a range (&quot;2-6&quot;), a comma-separated list (&quot;7,9,11&quot;) or a combination (&quot;3,6-9,11,13-20&quot;).</xs:documentation>
                          </xs:annotation>

                        </xs:element>

                      </xs:sequence>

                    </xs:complexType>

                  </xs:element>

                </xs:sequence>

              </xs:complexType>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="dice-sound" type="xs:string">
        <xs:annotation>
          <xs:documentation>The sound to play when dice are rolled.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="heal-sound" type="xs:string">
        <xs:annotation>
          <xs:documentation>The sound to play when hit points are adjusted in a beneficial direction.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="harm-sound" type="xs:string">
        <xs:annotation>
          <xs:documentation>The sound to play when hit points are adjusted in a detrimental direction.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="armed-sound" type="xs:string">
        <xs:annotation>
          <xs:documentation>The sound to play when a weapon is armed.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="disarmed-sound" type="xs:string">
        <xs:annotation>
          <xs:documentation>The sound to play when a weapon is disarmed.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" name="critical-hit" type="xs:integer">
        <xs:annotation>
          <xs:documentation>The default value to indicate to the program that a critical hit has occurred.  Individual expressions can override this default value if they like.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" name="critical-miss" type="xs:integer">
        <xs:annotation>
          <xs:documentation>The default value to indicate to the program that a critical miss has occurred.  Individual expressions can override this default value if they like.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="critical-multiplier" type="xs:string">
        <xs:annotation>
          <xs:documentation>The default value to display when a &quot;critical hit&quot; occurs. Individual expressions can override this default value if they like.  Note that this value is for display purposes only -- the program does not inherently use it to perform any calculations.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" default="false" name="reroll-critical" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating whether the program should automatically re-roll an expression when a &quot;critical hit&quot; occurs.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" default="false" name="treat-data-as-modifiers" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating whether the program should treat all numerical data on the character sheet as a modifier.  This means that any positive value (or zero) will have a plus (&quot;+&quot;) placed in front of it before that value is placed in an expression for evaluation.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" default="true" name="higher-than-ac-to-hit" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating to the program that an expression must evaluate greater than or equal to a comparative value to be considered a &quot;hit.&quot;</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" default="false" name="allow-randomize-hp" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating that it is acceptable for the program to attempt to randomize the &quot;hit points&quot; of Icons.  Some game systems do not have a concept of &quot;hit points,&quot; so for them the concept of &quot;randomizing hit points&quot; makes no sense.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="player-field" type="xs:string">
        <xs:annotation>
          <xs:documentation>The ID of the field that probably contains the name of the Player of a particular Icon.  The program uses this information, if it is available, to update a character sheet when a Player selects an Icon via browsing.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="class-field" type="xs:string">
        <xs:annotation>
          <xs:documentation>The ID of the field that probably contains an Icon's &quot;class&quot; information.  If available, the program will use this data to display more information about an Icon.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="hd-field" type="xs:string">
        <xs:annotation>
          <xs:documentation>The ID of the field that probably contains hit dice information.  The program will use this information, in conjunction with &quot;allow-randomize-hp&quot; to randomize an Icon's hit points.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="temporary-modifier-table" type="xs:string">
        <xs:annotation>
          <xs:documentation>The ID of the table that contains temporary modifier information.  Temporary modifiers are used throughout the program to alter an Icon's rolls under special circumstances and for limited amounts of time.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="disabled-point">
        <xs:annotation>
          <xs:documentation>Definition of where the program can look to determine if an Icon should be considered &quot;disabled&quot; or not.</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" name="field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the field to compare against.  This is required.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" name="value" type="xs:integer">
              <xs:annotation>
                <xs:documentation>The literal value to compare the value of &quot;field&quot; against.  Depending on whether hit points count up or down, if the data contained in &quot;field&quot; is either below or above this value, the Icon will be considered to be &quot;disabled.&quot;

Instead of a literal value, you can use the &quot;compare&quot; clauses instead of a literal for more flexibility.
</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="1" name="compare-field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of a field to compare against.

Instead of using a literal &quot;value,&quot; you can specify a &quot;compare-field&quot; and &quot;compare-multiplier.&quot;

If you do this, then the value of the &quot;compare-field&quot; will be multiplied by the &quot;compare-multiplier.&quot;  The result of this calculation will be compared to the value of &quot;field.&quot;  If the result of this calculation is below or above (depending on which way hit points count) the value contained in &quot;field,&quot; the Icon will be considered &quot;disabled.&quot;
</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="1" name="compare-multiplier" type="xs:double">
              <xs:annotation>
                <xs:documentation>A multiplier to apply to the value of the &quot;compare-field&quot; to retrieve a percentage scale at which point an Icon will be considered &quot;disabled.&quot;</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="unbounded" name="modifiers">
              <xs:annotation>
                <xs:documentation>A list of field IDs whose values can modify another field's value.</xs:documentation>
              </xs:annotation>

              <xs:complexType>
                <xs:sequence>
                  <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>The ID of a field whose contents will directly modify the value of the associated field.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                  <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier-positive" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>The ID of a field which contains data whose absolute value will positively modify the value of the associated field.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                  <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier-negative" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>The ID of a field which contains data whose absolute value will negatively modify the value of the associated field.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                </xs:sequence>

              </xs:complexType>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="bloodied-point">
        <xs:annotation>
          <xs:documentation>Definition of where the program can look to determine if an Icon should be considered &quot;bloodied&quot; or not.</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" name="field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the field to compare against.  This is required.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" name="value" type="xs:string">
              <xs:annotation>
                <xs:documentation>The literal value to compare the value of &quot;field&quot; against.  Depending on whether hit points count up or down, if the data contained in &quot;field&quot; is either below or above this value, the Icon will be considered to be &quot;dead.&quot;

Instead of a literal value, you can use the &quot;compare&quot; clauses instead of a literal for more flexibility.
</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="1" name="compare-field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of a field to compare against.

Instead of using a literal &quot;value,&quot; you can specify a &quot;compare-field&quot; and &quot;compare-multiplier.&quot;

If you do this, then the value of the &quot;compare-field&quot; will be multiplied by the &quot;compare-multiplier.&quot;  The result of this calculation will be compared to the value of &quot;field.&quot;  If the result of this calculation is below or above (depending on which way hit points count) the value contained in &quot;field,&quot; the Icon will be considered &quot;dead.&quot;
</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="1" name="compare-multiplier" type="xs:double">
              <xs:annotation>
                <xs:documentation>A multiplier to apply to the value of the &quot;compare-field&quot; to retrieve a percentage scale at which point an Icon will be considered &quot;dead.&quot;</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="unbounded" name="modifiers">
              <xs:annotation>
                <xs:documentation>A list of field IDs whose values can modify another field's value.</xs:documentation>
              </xs:annotation>

              <xs:complexType>
                <xs:sequence>
                  <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>The ID of a field whose contents will directly modify the value of the associated field.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                  <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier-positive" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>The ID of a field which contains data whose absolute value will positively modify the value of the associated field.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                  <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier-negative" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>The ID of a field which contains data whose absolute value will negatively modify the value of the associated field.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                </xs:sequence>

              </xs:complexType>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="dead-point">
        <xs:annotation>
          <xs:documentation>Definition of where the program can look to determine if a PC Icon should be considered &quot;dead&quot; or not.  If &quot;npc-dead-point&quot; is not defined, then this will be used for NPCs as well.</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" name="field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the field to compare against.  This is required.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" name="value" type="xs:string">
              <xs:annotation>
                <xs:documentation>The literal value to compare the value of &quot;field&quot; against.  Depending on whether hit points count up or down, if the data contained in &quot;field&quot; is either below or above this value, the Icon will be considered to be &quot;dead.&quot;

Instead of a literal value, you can use the &quot;compare&quot; clauses instead of a literal for more flexibility.
</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="1" name="compare-field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of a field to compare against.

Instead of using a literal &quot;value,&quot; you can specify a &quot;compare-field&quot; and &quot;compare-multiplier.&quot;

If you do this, then the value of the &quot;compare-field&quot; will be multiplied by the &quot;compare-multiplier.&quot;  The result of this calculation will be compared to the value of &quot;field.&quot;  If the result of this calculation is below or above (depending on which way hit points count) the value contained in &quot;field,&quot; the Icon will be considered &quot;dead.&quot;
</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="1" name="compare-multiplier" type="xs:double">
              <xs:annotation>
                <xs:documentation>A multiplier to apply to the value of the &quot;compare-field&quot; to retrieve a percentage scale at which point an Icon will be considered &quot;dead.&quot;</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="unbounded" name="modifiers">
              <xs:annotation>
                <xs:documentation>A list of field IDs whose values can modify another field's value.</xs:documentation>
              </xs:annotation>

              <xs:complexType>
                <xs:sequence>
                  <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>The ID of a field whose contents will directly modify the value of the associated field.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                  <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier-positive" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>The ID of a field which contains data whose absolute value will positively modify the value of the associated field.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                  <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier-negative" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>The ID of a field which contains data whose absolute value will negatively modify the value of the associated field.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                </xs:sequence>

              </xs:complexType>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="npc-dead-point">
        <xs:annotation>
          <xs:documentation>Definition of where the program can look to determine if an NPC Icon should be considered &quot;dead&quot; or not.  If not defined then the &quot;dead-point&quot; clause will be used for NPCs as well as PCs.</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" name="field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the field to compare against.  This is required.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" name="value" type="xs:string">
              <xs:annotation>
                <xs:documentation>The literal value to compare the value of &quot;field&quot; against.  Depending on whether hit points count up or down, if the data contained in &quot;field&quot; is either below or above this value, the Icon will be considered to be &quot;dead.&quot;

Instead of a literal value, you can use the &quot;compare&quot; clauses instead of a literal for more flexibility.
</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="1" name="compare-field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of a field to compare against.

Instead of using a literal &quot;value,&quot; you can specify a &quot;compare-field&quot; and &quot;compare-multiplier.&quot;

If you do this, then the value of the &quot;compare-field&quot; will be multiplied by the &quot;compare-multiplier.&quot;  The result of this calculation will be compared to the value of &quot;field.&quot;  If the result of this calculation is below or above (depending on which way hit points count) the value contained in &quot;field,&quot; the Icon will be considered &quot;dead.&quot;
</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="1" name="compare-multiplier" type="xs:double">
              <xs:annotation>
                <xs:documentation>A multiplier to apply to the value of the &quot;compare-field&quot; to retrieve a percentage scale at which point an Icon will be considered &quot;dead.&quot;</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="unbounded" name="modifiers">
              <xs:annotation>
                <xs:documentation>A list of field IDs whose values can modify another field's value.</xs:documentation>
              </xs:annotation>

              <xs:complexType>
                <xs:sequence>
                  <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>The ID of a field whose contents will directly modify the value of the associated field.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                  <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier-positive" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>The ID of a field which contains data whose absolute value will positively modify the value of the associated field.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                  <xs:element minOccurs="0" maxOccurs="unbounded" name="modifier-negative" type="xs:string">
                    <xs:annotation>
                      <xs:documentation>The ID of a field which contains data whose absolute value will negatively modify the value of the associated field.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                </xs:sequence>

              </xs:complexType>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="threatened-area">
        <xs:annotation>
          <xs:documentation>Definition of where the program can retrieve information for rendering &quot;threatened areas.&quot;</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" name="field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the field where &quot;threatened area&quot; data is contained.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" name="default" type="xs:string">
              <xs:annotation>
                <xs:documentation>A default value to use if the supplied field of the character sheet does not contain any valid data.</xs:documentation>
              </xs:annotation>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="reroll-critical-modifier">
        <xs:annotation>
          <xs:documentation>A clause that gives the program information about where to retrieve data to be applied to a &quot;critical hit&quot; re-roll.

Some game systems allow you to specify a special modifier that is only applied to &quot;critical hit re-roll checks.&quot;  For such game systems, you can use this clause to tell the program where to find this modifier information.
</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" name="field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the field containing special &quot;critical hit&quot; re-roll modifier data.</xs:documentation>
              </xs:annotation>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="icon-size">
        <xs:annotation>
          <xs:documentation>This clause supplies the program with information about where to find an Icon's size (as expressed in Map scale units).</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" name="field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the field that should contain Icon size data.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" name="default" type="xs:string">
              <xs:annotation>
                <xs:documentation>A default value to use if the supplied field does not contain valid size data.</xs:documentation>
              </xs:annotation>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="icon-altitude">
        <xs:annotation>
          <xs:documentation>This clause supplies the program with information about where to find an Icon's altitude (as expressed in Map scale units).</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" name="field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the field containing &quot;altitude&quot; data.</xs:documentation>
              </xs:annotation>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="chat-filter">
        <xs:annotation>
          <xs:documentation>This clause supplies the program with information about where to find an Icon's chat filter.</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" name="field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the field containing &quot;chat filter&quot; data.</xs:documentation>
              </xs:annotation>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="light-radius">
        <xs:annotation>
          <xs:documentation>This clause supplies the program with information about where to find an Icon's &quot;light radius.&quot;

The &quot;light radius&quot; is used when &quot;player obscurity&quot; is used so areas of the Map are revealed as Icons move.
</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" name="field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the field containing &quot;light radius&quot; data.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" name="default" type="xs:string">
              <xs:annotation>
                <xs:documentation>A default value to use if the supplied field does not contain valid light radius data.</xs:documentation>
              </xs:annotation>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="attacks-per-round">
        <xs:annotation>
          <xs:documentation>This clause supplies the program with information about where to find an Icon's &quot;attacks per round.&quot;

Some game systems have a fixed idea of how many attacks an Icon can make in a given combat sequence.  Use this clause for such systems so that Icons appear the correct number of times in the combat tracker.
</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" name="field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the field containing &quot;attacks per round&quot; data.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" name="default" type="xs:string">
              <xs:annotation>
                <xs:documentation>A default value to use if the supplied field does not contain valid attacks per round data.</xs:documentation>
              </xs:annotation>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="sound-file-field" type="xs:string">
        <xs:annotation>
          <xs:documentation>The ID of the field should should contain the name of a sound file to associate with the Icon.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="cur-xp-field" type="xs:string">
        <xs:annotation>
          <xs:documentation>The ID of a field that should contain information about the Icon's current experience point level.

The data contained in this field will be used to display experience point information in the program.  Of course, if your game system does not have a concept of &quot;experience points,&quot; you can use this field to display arbitrary field data that may be of interest to you.
</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="next-xp-field" type="xs:string">
        <xs:annotation>
          <xs:documentation>The ID of a field that should contain information about the Icon's next experience point level.

The data contained in this field will be used to display experience point information in the program.  Of course, if your game system does not have a concept of &quot;experience points,&quot; you can use this field to display arbitrary field data that may be of interest to you.
</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="effects-file" type="xs:string">
        <xs:annotation>
          <xs:documentation>The name of a file that is expected to contain Icon Effect information.  These Effects will be made available to the Master in the list of &quot;global&quot; Effects and to Players when they modify an Icon's effects.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="desc-file" type="xs:string">
        <xs:annotation>
          <xs:documentation>The name of a file that contains description information.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="quick-stat-size-x" type="xs:integer">
        <xs:annotation>
          <xs:documentation>The maximum width of the Icon Quick Stat window.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="quick-stat-size-y" type="xs:integer">
        <xs:annotation>
          <xs:documentation>The maximum height of the Icon Quick Stat window.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="unbounded" name="array">
        <xs:annotation>
          <xs:documentation>This clause allows you to define a fixed array of string values that can be references in other places on the character sheets just as any other field can be referenced.</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" name="id" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of this array, which can be used to reference this array just as any other field.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="0" maxOccurs="unbounded" name="element" type="xs:string">
              <xs:annotation>
                <xs:documentation>An element of the array.</xs:documentation>
              </xs:annotation>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" default="false" name="local-data-files" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating that data files referenced in the definition file should not be sent to Players.

DO NOT SET THIS FLAG UNLESS YOU KNOW WHAT YOU ARE DOING!!!

If set, it is assumed that Players already possess any and all data files referenced in the definition.  As a result, these data files will not be sent to Players.

So long as Players are kept in sync with the Master's data files, this can significantly cut down on data traffic at Player start up (assuming that large data files are in use).

If you find yourself changing your data files on a regular basis, or you do not use large data files, then you are better off not specifying this setting, as it can easily lead to unexpected and difficult to diagnose problems.
</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" default="false" name="use-si-units" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating that this game system forces the use of SI units.

If not specified, then the Master has the choice of which measuring system to use in Preferences.
</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" default="false" name="use-english-units" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating that this game system forces the use of English units.

If not specified, then the Master has the choice of which measuring system to use in Preferences.
</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" name="always-round-down" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating that all calculation remainders will be rounded down to the next lowest integer unless directed otherwise by a more specific flag.

For example, a result of &quot;4.5&quot; will be returned as &quot;4.0.&quot;
</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" default="false" name="lower-than-ac-to-hit" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating that a roll must be lower or equal to the value contained in the indicated &quot;armor&quot; field to be considered a &quot;hit.&quot;</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" default="true" name="hps-count-down" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating that a higher value of &quot;hit points&quot; is considered &quot;healthy&quot; and a lower value is considered &quot;harmful.&quot;</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" default="false" name="hps-count-up" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating that a lower value of &quot;hit points&quot; is considered &quot;healthy&quot; and a higher value is considered &quot;harmful.&quot;</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" name="max-combined-rolls" type="xs:integer">
        <xs:annotation>
          <xs:documentation>A value that instructs the program the maximum number of rolls that can be combined.

This setting is for game systems that allow you to &quot;gang&quot; rolls together.
</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" default="false" name="only-modifiers-when-combined" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating that when using &quot;combined&quot; rolls, ignore the die portion of all but the first expression and combine only the modifiers from subsequent expressions into the first expression.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" default="false" name="heal-from-zero" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating that &quot;healing&quot; an Icon should ignore negative values.

For example, in a system where hit points count down, if an Icon is at &quot;-5&quot; hit points and receives healing of &quot;6&quot; hit points, instead of being at &quot;1&quot; hit point, he will be at &quot;6.&quot;

For game systems where hit points count up, this logic is reversed.
</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="mod-pool">
        <xs:annotation>
          <xs:documentation>For game systems that use the concept of a &quot;pool&quot; of modifers that can be drawn from for rolls, this clause allows you to define where the program can expect to retrieve this information.</xs:documentation>
        </xs:annotation>

        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="unbounded" name="pool-field" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the field where the &quot;pool&quot; of modifiers is defined.</xs:documentation>
              </xs:annotation>

            </xs:element>

            <xs:element minOccurs="1" maxOccurs="unbounded" name="pool-die-to-use" type="xs:string">
              <xs:annotation>
                <xs:documentation>The ID of the previously defined die to use as the basis for a &quot;mod-pool&quot; roll.</xs:documentation>
              </xs:annotation>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element minOccurs="0" name="success-above" type="xs:string">
        <xs:annotation>
          <xs:documentation>The default value above which a roll is considered to be a &quot;success.&quot;  This can be overridden on a per-expression basis.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="success-below" type="xs:string">
        <xs:annotation>
          <xs:documentation>The default value below which a roll is considered to be a &quot;success.&quot;  This can be overridden on a per-expression basis.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="reroll-above" type="xs:string">
        <xs:annotation>
          <xs:documentation>The default value above which a roll is &quot;tossed out&quot; and re-rolled.  This can be overridden on a per-expression basis.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="reroll-above-save" type="xs:string">
        <xs:annotation>
          <xs:documentation>The default value above which a roll is &quot;tossed out&quot; and re-rolled, but the fact that the roll was &quot;tossed&quot; is kept track of.  This can be overridden on a per-expression basis.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="reroll-below" type="xs:string">
        <xs:annotation>
          <xs:documentation>The default value below which a roll is &quot;tossed out&quot; and re-rolled.  This can be overridden on a per-expression basis.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="reroll-below-save" type="xs:string">
        <xs:annotation>
          <xs:documentation>The default value below which a roll is &quot;tossed out&quot; and re-rolled, but the fact that the roll was &quot;tossed&quot; is kept track of.  This can be overridden on a per-expression basis.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="exclude-above" type="xs:string">
        <xs:annotation>
          <xs:documentation>The default value above which a roll is excluded from the overall expression result.  This can be overridden on a per-expression basis.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" name="exclude-below" type="xs:string">
        <xs:annotation>
          <xs:documentation>The default value below which a roll is excluded from the overall expression result.  This can be overridden on a per-expression basis.</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" name="always-round-up" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Flag indicating that all calculation remainders will be rounded up to the next highest integer unless directed otherwise by a more specific flag.

For example, a result of &quot;4.5&quot; will be returned as &quot;5.0.&quot;
</xs:documentation>
        </xs:annotation>

      </xs:element>

      <xs:element minOccurs="0" maxOccurs="1" name="adjust-hp-script" type="xs:string">
        <xs:annotation>
          <xs:documentation>The name of a script that will be executed before any Icon Effect that makes adjustments to hit points.

This script is allowed to alter the amount of the hit point adjustment, thereby customizing what the program will end up doing.

An example of this type of script is used in the &quot;4e&quot; definition.
</xs:documentation>
        </xs:annotation>

      </xs:element>

    </xs:sequence>

  </xs:complexType>

</xs:element>
Child Elements
Name Type Min Occurs Max Occurs
Derivation Tree
[No Sub Types]
base-rules
    [No Super Types]
Generated using Liquid XML Studio by Liquid Technologies Ltd