<--tables, continued ^--xmld20--^ part II-->

xmld20 - an XML Schema for d20 gaming systems - design, part 4

Putting aside the huge digression of automating monster levels, we've had a new interesting curve thrown at us: the Monster Manual IV.

In MM4, they've changed the stat block! (Okay, it first appeared in the Dungeon Master's Guide II, which I don't have.) In fact, their new layout is similar to what I've made when preparing combat sheets for D&D sessions, where I try to keep all related information at hand, instead of requiring the source material. They have, for instance, lumped all "defensive" information together, such as AC, DR, SR, Immunities, Resists and Weaknesses. All "sensing" information, such as Spot, Listen, blindsense, darkvision and the like, are also bundled together to allow the user to quickly see all of the ways the creature can detect others.

Of course, this means that we need new XSL to convert our data to this new stat block. But perhaps the new stat block gives us a little hint on a better way to store the information? The fact that DR is now a prime entry in the stat block, instead of a sometimes-mentioned EX or SU ability is interesting, especially since right now it appears as a textual description (such as this in the Pit Fiend:)

  <SpecialQualities>
    <SpecialQuality>damage reduction 15/good and silver</SpecialQuality>
    <SpecialQuality>regeneration 5</SpecialQuality>
    <SpecialQuality>spell resistance 32</SpecialQuality>
  </SpecialQualities>
Now that these values are getting entry-like status in the new stat block, they should probably get labelled in such a way in our method. Time to go flip through the MM4 a little more to get a feel for what has changed...

Changes

Auras and other specifics

To support both the old and new statblocks, we now store auras, DR, SR, regeneration, fast healing, etc. as processable elements as well as flat text. This goes against the original design, since we should be able to reproduce the flat text from the descriptive elements -- we'll return to this later.
     <SpecialAttack>fear aura</SpecialAttack>
becomes
     <SpecialAttack><Aura name="fear" range="20" DC="27"/>fear aura</SpecialAttack>
and
     <SpecialQuality>damage reduction 15/good and silver</SpecialQuality>
     <SpecialQuality>regeneration 5</SpecialQuality>
     <SpecialQuality>spell resistance 32</SpecialQuality>
becomes
     <SpecialQuality><DR value="15/good and silver"/>damage reduction 15/good and silver</SpecialQuality>
     <SpecialQuality><regeneration value="5"/>regeneration 5</SpecialQuality>
     <SpecialQuality><SR value="32"/>spell resistance 32</SpecialQuality>

Feat changes

     <Feat name="Quicken Spell-Like Ability (fireball)"/>
becomes
     <Feat name="Quicken Spell-Like Ability" value="fireball"/>
I never liked the "subtext" being part of the feat name, since it's not a different feat if we had it for, say, magic missile, just a different application of it. The placement of the description of the Special Ability versus the entry might change as well.

Text blocks

These are the hardest to implement, since they've added new sections to the monsters. Instead of just a Combat and possible Tactics section, we now have Strategies and Tactics; the Organization entry is now replaced by a full Sample Encounters block; Environment is now Ecology, and a bit wordier; and the Treasure entry is now a descriptive block. Additionally, many monsters now have a Lore section which gives you the appropriate Knowledge check required to identify and know about the monster.

Schema

At this point I should really look into formalizing a schema for the monster layout, not only to provide verification and consistency with my sample data, but to provide a template for those that might enter future information for this project.

As it stands, my handful of test subjects seem to be doing okay; to take a peek, you can look at the Aboleth in old and new form, as well as the Achaierai in old and new form, and the pitfiend in old and new form. Each pair comes from the same set of data, using two different XSL templates. (If they don't look right, you may have found them in the middle of a modification).
<--tables, continued ^--xmld20--^ part II-->

©2002-2017 Wayne Pearson