Item structure

All elements that can be bought for Nuyen use the item element. This is by far the most powerful and most complex XML definition you will encounter.

<item id="my_identifier" lang="en" type="SORT_TYPE" subtype="SORT_SUBTYPE" avail="" price="" modOnly="n" count="n">
  <choices>
    <choice ...>
    ...
  </choices>
  
  <requires>
  </requires>
  
  <!-- Definitions of single attributes>
  <attrdef .../>
  <attrdef .../>
  ...
  
  <!-- Shortcuts for ease of use -->
  <weapon ... />
  <armor .../>
  <matrix .../>
  
  <flag>...</flag>
  <flag>...</flag>
  ...
  
  <usage ...>
  <usage ...>
  ...
  
  <variant id="variant_id" ...>
  </variant>
  <variant id="variant_id" ...>
  </variant>
  ...
  
  <alternate>...</alternate>
  <alternate>...</alternate>
  ...
  
  <modifications>
  </modifications>
</item>

Let us have a look at the item attributes first

More attributes are supported to allow being more compatible with old Genesis datafiles.

Elements within an <item>

A very simple item

The very basic item

looks like this in XML

<item id="autopicker" subtype="BREAKING" type="ELECTRONICS"/>
  <attrdef id="AVAILABILITY" value="4L"/>
  <attrdef id="PRICE"        value="500"/>
</item>

If you choose the backward compatibility notation, it would be:

<item id="autopicker" avail="4L" price="500" subtype="BREAKING" type="ELECTRONICS"/>

Items with shortcuts

For ease of use and for backward compatibility with Genesis data, there are elements within an item, that replace attribute definitions.

would be written like this:

<item id="fichetti_tiffani_needler" type="WEAPON_FIREARMS" subtype="HOLDOUTS">
  <attrdef id="AVAILABILITY"  value="2"/>
  <attrdef id="PRICE"         value="435"/>
  <attrdef id="DAMAGE"        value="3P"/>
  <attrdef id="ATTACK_RATING" value="10,6,2,,"/>
  <attrdef id="FIREMODES"     value="SS"/>
  <attrdef id="AMMUNITION"    value="4(c)"/>
  <attrdef id="SKILL"         value="firearms"/>
  <attrdef id="SKILL_SPECIALIZATION"  value="firearms/holdouts"/>
</item>

With the use of the shortcuts elements and the <item>-line, this can be shortened to

<item id="fichetti_tiffani_needler" avail="2" price="435" type="WEAPON_FIREARMS" subtype="HOLDOUTS">
   <weapon dmg="3P" attack="10,6,2,," mode="SS" ammo="4(c)" skill="firearms" spec="firearms/holdouts"/>
</item>

Items with modifications

Some items have modifications that should be applied - to either the item itself, the parent item containing the defined item or the character. The most common example is defining slots for accessories

Like all light pistols, the Beretta supports Top or Barrel-mounted accessories

<item avail="2L" price="260" id="beretta_101T" type="WEAPON_FIREARMS" subtype="PISTOLS_LIGHT">
  <modifications>
    <itemmod type="HOOK" ref="TOP"/>
    <itemmod type="HOOK" ref="BARREL"/>
  </modifications>
  <weapon ammo="21(c)" dmg="2P" attack="9,8,6,," mode="SA" skill="firearms" spec="firearms/pistols_light"/>
</item>

The <itemmod> is they key element here - it says that it will modify/provide a Hook (meaning a slot for accessories) of a specific type. Note that both Hooks don’t require a capacity value.

ToDo: Modifications with capacity

Items with requirements

ToDo: assault rifles with strength

Accessories - or: “usage”

Sometimes items are not intended to be used on their own, but added into a slot of an existing item (see #modifications )

Items with variants

Variants are different versions of the same item. If an item has variants, it copies all attributes from the main item and allows you to override those attributes or even add new ones.

<item avail="1" price="250" id="flare_compensation" type="ACCESSORY" subtype="VISION_ENHANCEMENT">
  <usage mode="EMBEDDED" slot="OPTICAL" size="1"/>
  <variant id="helmet">
  	<usage mode="EMBEDDED" slot="HELMET_ACCESORY" size="1"/>
  </variant>
  <variant id="cybereye">
  	<usage mode="EMBEDDED" slot="CYBEREYE_IMPLANT" size="1"/>
  	<attrdef id="PRICE" value="1000"/>
  	<attrdef id="AVAILABILITY" value="2"/>
  	<flag>AUGMENTATION</flag>
  </variant>
  <variant id="bodyware">
  	<usage mode="IMPLANTED" />
  	<attrdef id="PRICE" value="1000"/>
  	<attrdef id="AVAILABILITY" value="2"/>
  	<attrdef id="ESSENCECOST" value="0.1"/>
  	<flag>AUGMENTATION</flag>
  </variant>
</item>