<--Rethink, part 5 ^--xmld20--^ Status, continued-->

xmld20 - an XML Schema for d20 gaming systems - status

So, where do we stand? It's looking pretty good right now. As things are, the two-level fighter, Placide, starts with
  <Character>
    <Bio>
	<Name>Placide deMorgan</Name>
	<Race>human</Race>
	<Player>Wayne Pearson</Player>
    </Bio>
    <Levels>
	<Level number="0">
		<Set type="Ability" name="strength">12</Set>
		<Set type="Ability" name="intelligence">10</Set>
		<Set type="Ability" name="dexterity">14</Set>
		<Set type="Ability" name="constitution">14</Set>
		<Set type="Ability" name="wisdom">12</Set>
		<Set type="Ability" name="charisma">12</Set>
	</Level>
	<Level number="1" class="fighter">
		<Increase type="Skill" name="climb">4</Increase>
		<Increase type="Skill" name="jump">4</Increase>
		<Increase type="Skill" name="swim">4</Increase>
		<Add type="Feat" name="cleave"/>
		<Add type="Feat" name="dodge"/>
		<Add type="Feat" name="power attack"/>
		<Increase type="hp">10</Increase>
	</Level>
	<Level number="2" class="fighter">
		<Increase type="Skill" name="climb">1</Increase>
		<Increase type="Skill" name="jump">1</Increase>
		<Increase type="Skill" name="swim">1</Increase>
		<Add type="Feat" name="mobility"/>
		<Increase type="hp">4</Increase>
	</Level>
    </Levels>
  </Character>
and
<Class name="fighter">
  <Levels>
    <Level number="1">
	<Increase type="HD" subtype="fighter">1</Increase>
	<Increase type="BAB">1</Increase>
	<Increase type="SavingThrow" name="fortitude">2</Increase>
	<Choice type="Skill">2</Choice>
	<Choice type="Feat" subtype="fighter"/>
    </Level>
    <Level number="2">
	<Increase type="HD" subtype="fighter">1</Increase>
	<Increase type="BAB">1</Increase>
	<Increase type="SavingThrow" name="fortitude">1</Increase>
	<Choice type="Skill">2</Choice>
	<Choice type="Feat" subtype="fighter"/>
    </Level>
  </Levels>
</Class>
and we get
<Character xmlns:xmld20="http://crwth.org/2006/xmld20">
   <Ability name="strength">12</Ability>
   <Ability name="intelligence">10</Ability>
   <Ability name="dexterity">14</Ability>
   <Ability name="constitution">14</Ability>
   <Ability name="wisdom">12</Ability>
   <Ability name="charisma">12</Ability>
   <Feat name="cleave"/>
   <Feat name="dodge"/>
   <Feat name="power attack"/>
   <Skill name="climb">5</Skill>
   <Skill name="jump">5</Skill>
   <Skill name="swim">5</Skill>
   <Feat name="mobility"/>
   <hp>14</hp>
   <HD subtype="fighter">2</HD>
   <BAB>2</BAB>
   <SavingThrow name="fortitude">3</SavingThrow>
</Character>
And adding another 8 levels of level up still looks great, with this as the final result:
<Character xmlns:xmld20="http://crwth.org/2006/xmld20">
   <Ability name="strength">12</Ability>
   <Ability name="intelligence">10</Ability>
   <Ability name="constitution">14</Ability>
   <Ability name="wisdom">12</Ability>
   <Ability name="charisma">12</Ability>
   <Feat name="cleave"/>
   <Feat name="dodge"/>
   <Feat name="power attack"/>
   <Feat name="mobility"/>
   <Feat name="combat expertise"/>
   <Feat name="improved disarm"/>
   <Feat name="great cleave"/>
   <Feat name="improved trip"/>
   <Feat name="spring attack"/>
   <Ability name="dexterity">16</Ability>
   <Feat name="whirlwind attack"/>
   <SavingThrow name="reflex">3</SavingThrow>
   <SavingThrow name="will">3</SavingThrow>
   <Skill name="climb">13</Skill>
   <Skill name="jump">13</Skill>
   <Skill name="swim">13</Skill>
   <Feat name="improved feint"/>
   <hp>65</hp>
   <HD subtype="fighter">10</HD>
   <BAB>10</BAB>
   <SavingThrow name="fortitude">7</SavingThrow>
</Character>
Before moving on to generating a character sheet out of that, let's see how well it works with multiclassing. Here's the character data for Scar, a Clr5/Rog5:
  <Character>
    <Bio>
	<Name>Scar</Name>
	<Race>halfling</Race>
	<Player>Wayne Pearson</Player>
    </Bio>
    <Levels>
	<Level number="0">
		<Set type="Ability" name="strength">12</Set>
		<Set type="Ability" name="intelligence">10</Set>
		<Set type="Ability" name="dexterity">16</Set>
		<Set type="Ability" name="constitution">14</Set>
		<Set type="Ability" name="wisdom">15</Set>
		<Set type="Ability" name="charisma">8</Set>
	</Level>
	<Level number="1" class="cleric">
		<Increase type="Skill" name="concentration">4</Increase>
		<Increase type="Skill" name="knowledge" subname="religion">4</Increase>
		<Add type="Feat" name="dodge"/>
		<Increase type="hp">8</Increase>
	</Level>
	<Level number="2" class="rogue">
		<Increase type="Skill" name="hide">1</Increase>
		<Increase type="Skill" name="move silently">1</Increase>
		<Increase type="Skill" name="bluff">1</Increase>
		<Increase type="Skill" name="use magic device">1</Increase>
		<Increase type="Skill" name="listen">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
		<Increase type="Skill" name="knowledge" subname="religion">1</Increase>
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="hp">4</Increase>
	</Level>
	<Level number="3" class="cleric">
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="Skill" name="knowledge" subname="religion">1</Increase>
		<Add type="Feat" name="mobility"/>
		<Increase type="hp">7</Increase>
	</Level>
	<Level number="4" class="rogue">
		<Increase type="Skill" name="hide">1</Increase>
		<Increase type="Skill" name="move silently">1</Increase>
		<Increase type="Skill" name="bluff">1</Increase>
		<Increase type="Skill" name="use magic device">1</Increase>
		<Increase type="Skill" name="listen">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
		<Increase type="Skill" name="knowledge" subname="religion">1</Increase>
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="hp">6</Increase>
		<Increase type="Ability" name="dexterity">1</Increase>
	</Level>
	<Level number="5" class="cleric">
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="Skill" name="knowledge" subname="religion">1</Increase>
		<Increase type="hp">4</Increase>
	</Level>
	<Level number="6" class="rogue">
		<Increase type="Skill" name="hide">1</Increase>
		<Increase type="Skill" name="move silently">1</Increase>
		<Increase type="Skill" name="bluff">1</Increase>
		<Increase type="Skill" name="use magic device">1</Increase>
		<Increase type="Skill" name="listen">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
		<Increase type="Skill" name="knowledge" subname="religion">1</Increase>
		<Increase type="Skill" name="concentration">1</Increase>
		<Add type="Feat" name="combat casting"/>
		<Increase type="hp">2</Increase>
	</Level>
	<Level number="7" class="cleric">
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="Skill" name="knowledge" subname="religion">1</Increase>
		<Increase type="hp">6</Increase>
	</Level>
	<Level number="8" class="rogue">
		<Increase type="Skill" name="hide">1</Increase>
		<Increase type="Skill" name="move silently">1</Increase>
		<Increase type="Skill" name="bluff">1</Increase>
		<Increase type="Skill" name="use magic device">1</Increase>
		<Increase type="Skill" name="listen">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
		<Increase type="Skill" name="knowledge" subname="religion">1</Increase>
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="hp">5</Increase>
		<Increase type="Ability" name="wisdom">1</Increase>
	</Level>
	<Level number="9" class="cleric">
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="Skill" name="knowledge" subname="religion">1</Increase>
		<Add type="Feat" name="extra turning"/>
		<Increase type="hp">6</Increase>
	</Level>
	<Level number="10" class="rogue">
		<Increase type="Skill" name="hide">1</Increase>
		<Increase type="Skill" name="move silently">1</Increase>
		<Increase type="Skill" name="bluff">1</Increase>
		<Increase type="Skill" name="use magic device">1</Increase>
		<Increase type="Skill" name="listen">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
		<Increase type="Skill" name="knowledge" subname="religion">1</Increase>
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="hp">3</Increase>
	</Level>
    </Levels>
  </Character>
And here are the first five level progressions for the cleric and the rogue:
<Classes>
<Class name="cleric">
  <Levels>
    <Level number="1">
	<Increase type="HD" subtype="cleric">1</Increase>
	<Increase type="SavingThrow" name="fortitude">2</Increase>
	<Increase type="SavingThrow" name="will">2</Increase>
	<Choice type="Skill">2</Choice>
	<Add type="SpecialAbility" name="turn undead"/>
	<Increase type="Level" name="turn undead">1</Increase>
	<Increase type="Spell" subtype="cleric">1</Increase>
    </Level>
    <Level number="2">
	<Increase type="HD" subtype="cleric">1</Increase>
	<Increase type="BAB">1</Increase>
	<Increase type="SavingThrow" name="fortitude">1</Increase>
	<Increase type="SavingThrow" name="will">1</Increase>
	<Choice type="Skill">2</Choice>
	<Increase type="Level" name="turn undead">1</Increase>
	<Increase type="Spell" subtype="cleric">1</Increase>
    </Level>
    <Level number="3">
	<Increase type="HD" subtype="cleric">1</Increase>
	<Increase type="BAB">1</Increase>
	<Increase type="SavingThrow" name="reflex">1</Increase>
	<Choice type="Skill">2</Choice>
	<Increase type="Level" name="turn undead">1</Increase>
	<Increase type="Spell" subtype="cleric">1</Increase>
    </Level>
    <Level number="4">
	<Increase type="HD" subtype="cleric">1</Increase>
	<Increase type="BAB">1</Increase>
	<Increase type="SavingThrow" name="fortitude">1</Increase>
	<Increase type="SavingThrow" name="will">1</Increase>
	<Choice type="Skill">2</Choice>
	<Increase type="Level" name="turn undead">1</Increase>
	<Increase type="Spell" subtype="cleric">1</Increase>
    </Level>
    <Level number="5">
	<Increase type="HD" subtype="cleric">1</Increase>
	<Choice type="Skill">2</Choice>
	<Increase type="Level" name="turn undead">1</Increase>
	<Increase type="Spell" subtype="cleric">1</Increase>
    </Level>
  </Levels>
</Class>

<Class name="rogue">
  <Levels>
    <Level number="1">
	<Increase type="HD" subtype="rogue">1</Increase>
	<Increase type="SavingThrow" name="reflex">2</Increase>
	<Choice type="Skill">8</Choice>
	<Add type="SpecialAbility" name="trapfinding"/>
	<Add type="SpecialAbility" name="sneak attack"/>
	<Increase type="Level" name="sneak attack">1</Increase>
    </Level>
    <Level number="2">
	<Increase type="HD" subtype="rogue">1</Increase>
	<Increase type="BAB">1</Increase>
	<Increase type="SavingThrow" name="reflex">1</Increase>
	<Choice type="Skill">8</Choice>
	<Increase type="SpecialAbility" name="evasion">1</Increase>
    </Level>
    <Level number="3">
	<Increase type="HD" subtype="rogue">1</Increase>
	<Increase type="BAB">1</Increase>
	<Increase type="SavingThrow" name="fortitude">1</Increase>
	<Increase type="SavingThrow" name="will">1</Increase>
	<Choice type="Skill">8</Choice>
	<Increase type="Level" name="sneak attack">1</Increase>
	<Increase type="Level" name="trap sense">1</Increase>
    </Level>
    <Level number="4">
	<Increase type="HD" subtype="rogue">1</Increase>
	<Increase type="BAB">1</Increase>
	<Increase type="SavingThrow" name="reflex">1</Increase>
	<Choice type="Skill">8</Choice>
	<Increase type="SpecialAbility" name="uncanny dodge">1</Increase>
	<Increase type="Level" name="uncanny dodge">4</Increase>
    </Level>
    <Level number="5">
	<Increase type="HD" subtype="rogue">1</Increase>
	<Choice type="Skill">8</Choice>
	<Increase type="Level" name="sneak attack">1</Increase>
	<Increase type="Level" name="uncanny dodge">1</Increase>
    </Level>
  </Levels>
</Class>
</Classes>
The result:
<Character xmlns:xmld20="http://crwth.org/2006/xmld20">
   <Ability name="strength">12</Ability>
   <Ability name="intelligence">10</Ability>
   <Ability name="constitution">14</Ability>
   <Ability name="charisma">8</Ability>
   <Feat name="dodge"/>
   <SpecialAbility name="turn undead"/>
   <SpecialAbility name="trapfinding"/>
   <SpecialAbility name="sneak attack"/>
   <Feat name="mobility"/>
   <Ability name="dexterity">17</Ability>
   <SpecialAbility name="evasion">1</SpecialAbility>
   <Feat name="combat casting"/>
   <Level name="trap sense">1</Level>
   <SavingThrow name="fortitude">5</SavingThrow>
   <SavingThrow name="will">5</SavingThrow>
   <Ability name="wisdom">16</Ability>
   <BAB>6</BAB>
   <SavingThrow name="reflex">5</SavingThrow>
   <SpecialAbility name="uncanny dodge">1</SpecialAbility>
   <Feat name="extra turning"/>
   <HD subtype="cleric">5</HD>
   <Level name="turn undead">5</Level>
   <Spell subtype="cleric">5</Spell>
   <Skill name="hide">5</Skill>
   <Skill name="move silently">5</Skill>
   <Skill name="bluff">5</Skill>
   <Skill name="use magic device">5</Skill>
   <Skill name="listen">5</Skill>
   <Skill name="spot">5</Skill>
   <Skill name="knowledge" subname="religion">13</Skill>
   <Skill name="concentration">13</Skill>
   <hp>51</hp>
   <HD subtype="rogue">5</HD>
   <Level name="sneak attack">3</Level>
   <Level name="uncanny dodge">5</Level>
</Character>
Looks good to me! I'm tempted to start coding the next versions of the statblock generators, and the character sheet generator, but I should really make sure that the current format can handle everything that we have coming up. We've got five of the eleven base classes coded. We should still try coding a monster progression, since they can be a little different. We need to handle Decrease as well as Increase, for classes (or starting races) that might give a penalty, such as elves and half-orcs. And for monster entries, we need to figure out how to represent Organization, Treasure and the like. We also need to bring information from the Bio section into our result.

Something else has come up, though, that I think I need to address sooner than later. First of all is my use of Add, Increase, etc... I've currently been treating Add as "add unless it's already there, in which case, there's no reason to add it" and Set as "add this entry, overwriting any previous matching entry". The Set is fine, but it's the Add that worries me. What happens when we have a character that takes the Toughness feat twice? We should really be able to add that feat more than once, unlike other feats, but right now, subsequent Adds will just be ignored. What do we do?

Once solution is to create a new element, AddOnce, that would take on the current Add functionality, and allow Add to produce multiple entries. The other is to Set feats instead of Add them, except where the feat can exist multiple times.

Currently, I'm more inclined to do the latter solution. I'm not convinced (by me) that we need a "add unless it already exists" element, and if we do, it can be handled with If if necessary. This means I have to go through all of my current code and change the Adds to Sets.

The next issue that has come up is handling nested data and subcategoried data, as we'll see coming up.

Races

As mentioned above, we need to worry about races as well as classes. Even the basic races have ability changes or speed changes with which we must deal, and making monster classes definitely needs this.

halfling

For instance, the halfling class gets +2 dexterity and -2 strength.
<Races>
  <Race name="halfling">
	<Increase type="Ability" name="dexterity">2</Increase>
	<Decrease type="Ability" name="strength">2</Decrease>
  </Race>
</Races>
These are changes that need to be incorporated into our character block producer. There are other racial features as well:
	<Set type="Size">-1</Set>
	<Set type="Speed" name="walk">20</Set>
	<Increase type="Skill" subtype="racial" name="climb">2</Increase>
	<Increase type="Skill" subtype="racial" name="jump">2</Increase>
	<Increase type="Skill" subtype="racial" name="move silently">2</Increase>
	<Increase type="SavingThrow" subtype="racial" name="fortitude">1</Increase>
	<Increase type="SavingThrow" subtype="racial" name="reflex">1</Increase>
	<Increase type="SavingThrow" subtype="racial" name="will">1</Increase>
	<Increase type="SavingThrow" subtype="racial" name="will" subname="morale" condition="fear">2</Increase>
	<Increase type="BAB" subtype="racial" name="thrown">1</Increase>
        <Increase type="Skill" subtype="racial" name="listen">2</Increase>
The sub-sub-sub-classing of the halfling's fear bonus for saving throws is something we might get stuck on later. Note that I introduced an attribute out of thin air, condition, which I had anticipated in the code and thus all attributes are carried across in an entry. For matching purposes, though, only type, subtype, name and subname are checked. This may be a problem in the future.

By adding support for race bonuses, I had to modify the code a little; if you recall, we had a "level 0" where we put character creation decisions, mainly the starting ability scores. These, of course, must be loaded first, followed by racial changes, and then any levels higher than 1. This makes Scar come out correctly, with his higher dexterity, but lowered strength. It also allows for better handling of monster classes...

aboleth

Being the first monster in the Monster Manual, the aboleth sure does get a lot of special treatment from this system. The fact that it doesn't have a level progression chart (it's not really intended as a playable class) is a bit unfortunate, but it doesn't mean that we can't make one up, or, for the time being, say that there's but one level of aboleth, where all abilities are gained. This is what I've done for now.

Here's the aboleth character sheet:

  <Character>
  <Bio>
	<Name>aboleth</Name>
	<Race>aboleth</Race>
  </Bio>
    <Levels>
	<Level number="0">
		<Set type="Ability" name="strength">10</Set>
		<Set type="Ability" name="dexterity">10</Set>
		<Set type="Ability" name="constitution">10</Set>
		<Set type="Ability" name="intelligence">11</Set>
		<Set type="Ability" name="wisdom">11</Set>
		<Set type="Ability" name="charisma">11</Set>
	</Level>
	<Level number="1" class="aboleth">
		<Increase type="Skill" name="concentration">11</Increase>
		<Increase type="Skill" name="knowledge" subname="any one">11</Increase>
		<Increase type="Skill" name="listen">11</Increase>
		<Increase type="Skill" name="spot">11</Increase>
		<Add type="Feat" name="alertness"/>
		<Add type="Feat" name="combat casting"/>
		<Add type="Feat" name="iron will"/>
	</Level>
    </Levels>
  </Character>
</Characters>
Here is the race entry:
<Race name="aboleth">
	<Set type="Speed" name="walk">10</Set>
	<Set type="Speed" name="swim">60</Set>
	<Set type="Size">2</Set>
	<Set type="Type">aberration</Set>
	<Add type="Subtype">aquatic</Add>
</Race>
and here is the class:
<Class name="aboleth">
  <Levels>
    <Level number="1">
	<Increase type="HD" subtype="aboleth">8</Increase>
	<Increase type="SavingThrow" name="fortitude">2</Increase>
	<Increase type="SavingThrow" name="reflex">2</Increase>
	<Increase type="SavingThrow" name="will">6</Increase>
	<Increase type="AC" name="natural">7</Increase>
	<Add type="Weapon" subtype="aboleth" name="tentacle" super="tentacle"/>
	<Add type="Attack" weapon="tentacle"/>
	<Add type="FullAttack" weapon="tentacle">4</Add>
	<Set type="SpecialAbility" name="enslave"/>
	<Set type="SpecialAbility" name="psionics"/>
	<Set type="SpecialAbility" name="slime"/>
	<Set type="SpecialAbility" name="mucus cloud"/>
	<Increase type="Ability" name="strength">16</Increase>
	<Increase type="Ability" name="dexterity">2</Increase>
	<Increase type="Ability" name="constitution">10</Increase>
	<Increase type="Ability" name="intelligence">4</Increase>
	<Increase type="Ability" name="wisdom">6</Increase>
	<Increase type="Ability" name="charisma">6</Increase>
	<Choice type="Skill">44</Choice>
    </Level>
  </Levels>
</Class>
this gives us this result:
<Character xmlns:xmld20="http://crwth.org/2006/xmld20">
   <Speed name="walk">10</Speed>
   <Speed name="swim">60</Speed>
   <Size>2</Size>
   <Type>aberration</Type>
   <Subtype>aquatic</Subtype>
   <Skill name="concentration">11</Skill>
   <Skill name="knowledge" subname="any one">11</Skill>
   <Skill name="listen">11</Skill>
   <Skill name="spot">11</Skill>
   <Feat name="alertness"/>
   <Feat name="combat casting"/>
   <Feat name="iron will"/>
   <HD subtype="aboleth">8</HD>
   <SavingThrow name="fortitude">2</SavingThrow>
   <SavingThrow name="reflex">2</SavingThrow>
   <SavingThrow name="will">6</SavingThrow>
   <AC name="natural">7</AC>
   <Weapon subtype="aboleth" name="tentacle" super="tentacle"/>
   <Attack weapon="tentacle"/>
   <FullAttack weapon="tentacle">4</FullAttack>
   <SpecialAbility name="enslave"/>
   <SpecialAbility name="psionics"/>
   <SpecialAbility name="slime"/>
   <SpecialAbility name="mucus cloud"/>
   <Ability name="strength">26</Ability>
   <Ability name="dexterity">12</Ability>
   <Ability name="constitution">20</Ability>
   <Ability name="intelligence">15</Ability>
   <Ability name="wisdom">17</Ability>
   <Ability name="charisma">17</Ability>
   <Level subtype="class" name="aboleth">1</Level>
</Character>
This is a bit contrived; from looking at progression tables in the Savage Species book, the aboleth should probably start off with some of the ability increases as a racial bonus, with others gained over a few levels of progression. Perhaps it only starts as Large, or even Medium, and gains size during the progression. And of course the skill gains should be happening over many levels. Based on the HD, the aboleth should probably be AT LEAST an eight-level progression, perhaps more. These things are hard to judge without getting further into it (like we were way back when). In comparison, the astral deva, with 12HD and LA+8 is a twenty-level progression, and is CR14 as a monster. The aboleth, with 8HD and an unknown Level Adjustment, is CR7 as a creature... but that's not necessarily the best way to view it.

I'll probably experiment with creating an aboleth progression pretty soon, just to toy with monster progressions when generating monster stat blocks. Before that, though, we have to look at what is missing from the above result to generate such a stat block. Before that, however, let's take a stab at my nemesis from earlier incarnations, the aboleth mage. Since this is really just an aboleth with ten levels of wizard, it no longer has to be entered as some special version of the aboleth:

<Characters>
  <Character>
  <Bio>
	<Name>aboleth mage</Name>
	<Race>aboleth</Race>
  </Bio>
    <Levels>
	<Level number="0">
		<Set type="Ability" name="strength">12</Set>
		<Set type="Ability" name="dexterity">14</Set>
		<Set type="Ability" name="constitution">11</Set>
		<Set type="Ability" name="intelligence">16</Set>
		<Set type="Ability" name="wisdom">10</Set>
		<Set type="Ability" name="charisma">8</Set>
	</Level>
	<Level number="1" class="aboleth">
		<Increase type="Skill" name="bluff">11</Increase>
		<Increase type="Skill" name="concentration">11</Increase>
		<Increase type="Skill" name="knowledge" subname="dungeoneering">18</Increase>
		<Increase type="Skill" name="listen">11</Increase>
		<Increase type="Skill" name="search">5</Increase>
		<Increase type="Skill" name="sense motive">12</Increase>
		<Increase type="Skill" name="spellcraft">3</Increase>
		<Increase type="Skill" name="spot">4</Increase>

		<Set type="Feat" name="great fortitude"/>
		<Set type="Feat" name="combat casting"/>
		<Set type="Feat" name="improved initiative"/>
	</Level>
	<Level number="2" class="wizard">
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="Skill" name="decipher script">1</Increase>
		<Increase type="Skill" name="knowledge" subname="arcana">1</Increase>
		<Increase type="Skill" name="knowledge" subname="history">1</Increase>
		<Increase type="Skill" name="knowledge" subname="the planes">1</Increase>
		<Increase type="Skill" name="spellcraft">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
		<Set type="Feat" name="lightning reflexes"/>
	</Level>
	<Level number="3" class="wizard">
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="Skill" name="decipher script">1</Increase>
		<Increase type="Skill" name="knowledge" subname="arcana">1</Increase>
		<Increase type="Skill" name="knowledge" subname="history">1</Increase>
		<Increase type="Skill" name="knowledge" subname="the planes">1</Increase>
		<Increase type="Skill" name="spellcraft">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
		<Increase type="Ability" name="constitution">1</Increase>
	</Level>
	<Level number="4" class="wizard">
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="Skill" name="decipher script">1</Increase>
		<Increase type="Skill" name="knowledge" subname="arcana">1</Increase>
		<Increase type="Skill" name="knowledge" subname="history">1</Increase>
		<Increase type="Skill" name="knowledge" subname="the planes">1</Increase>
		<Increase type="Skill" name="spellcraft">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
	</Level>
	<Level number="5" class="wizard">
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="Skill" name="decipher script">1</Increase>
		<Increase type="Skill" name="knowledge" subname="arcana">1</Increase>
		<Increase type="Skill" name="knowledge" subname="history">1</Increase>
		<Increase type="Skill" name="knowledge" subname="the planes">1</Increase>
		<Increase type="Skill" name="spellcraft">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
		<Set type="Feat" name="spell focus" subname="illusion"/>
	</Level>
	<Level number="6" class="wizard">
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="Skill" name="decipher script">1</Increase>
		<Increase type="Skill" name="knowledge" subname="arcana">1</Increase>
		<Increase type="Skill" name="knowledge" subname="history">1</Increase>
		<Increase type="Skill" name="knowledge" subname="the planes">1</Increase>
		<Increase type="Skill" name="spellcraft">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
		<Set type="Feat" name="eschew materials"/>
	</Level>
	<Level number="7" class="wizard">
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="Skill" name="decipher script">1</Increase>
		<Increase type="Skill" name="knowledge" subname="arcana">1</Increase>
		<Increase type="Skill" name="knowledge" subname="history">1</Increase>
		<Increase type="Skill" name="knowledge" subname="the planes">1</Increase>
		<Increase type="Skill" name="spellcraft">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
		<Increase type="Ability" name="constitution">1</Increase>
	</Level>
	<Level number="8" class="wizard">
		<Increase type="Skill" name="concentration">1</Increase>
		<Increase type="Skill" name="decipher script">1</Increase>
		<Increase type="Skill" name="knowledge" subname="arcana">1</Increase>
		<Increase type="Skill" name="knowledge" subname="history">1</Increase>
		<Increase type="Skill" name="knowledge" subname="the planes">1</Increase>
		<Increase type="Skill" name="spellcraft">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
		<Set type="Feat" name="spell focus" subname="enchantment"/>
	</Level>
	<Level number="9" class="wizard">
		<Increase type="Skill" name="decipher script">1</Increase>
		<Increase type="Skill" name="knowledge" subname="arcana">1</Increase>
		<Increase type="Skill" name="knowledge" subname="dungeoneering">1</Increase>
		<Increase type="Skill" name="knowledge" subname="history">1</Increase>
		<Increase type="Skill" name="knowledge" subname="the planes">1</Increase>
		<Increase type="Skill" name="spellcraft">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
	</Level>
	<Level number="10" class="wizard">
		<Increase type="Skill" name="decipher script">1</Increase>
		<Increase type="Skill" name="knowledge" subname="arcana">1</Increase>
		<Increase type="Skill" name="knowledge" subname="dungeoneering">1</Increase>
		<Increase type="Skill" name="knowledge" subname="history">1</Increase>
		<Increase type="Skill" name="knowledge" subname="the planes">1</Increase>
		<Increase type="Skill" name="spellcraft">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
	</Level>
	<Level number="11" class="wizard">
		<Increase type="Skill" name="decipher script">1</Increase>
		<Increase type="Skill" name="listen">1</Increase>
		<Increase type="Skill" name="knowledge" subname="arcana">1</Increase>
		<Increase type="Skill" name="knowledge" subname="history">1</Increase>
		<Increase type="Skill" name="knowledge" subname="the planes">1</Increase>
		<Increase type="Skill" name="spellcraft">1</Increase>
		<Increase type="Skill" name="spot">1</Increase>
		<Set type="Feat" name="empower spell"/>
		<Set type="Feat" name="spell penetration"/>
		<Increase type="Ability" name="constitution">1</Increase>
	</Level>
    </Levels>
  </Character>
</Characters>
By coming up with this sheet, I found out something interesting, though not really surprising: the aboleth mage is an invalid creature, from what I can see. While all of my wizard skill points are correctly and validly distributed, the aboleth ones are not. Bluff, Search and Sense Motive are all cross-class skills for aboleths and wizards, yet the total number of skill points used seems to imply that they were not treated as such. Of course, the above is possibly not the most reasonable interpretation of the Monster Manual's version; would a wizard be adding points to Constitution? Is the order of my feat selection sensible? At this point, I'm not really that concerned...
<--Rethink, part 5 ^--xmld20--^ Status, continued-->
©2002-2017 Wayne Pearson