I'm going to go line by line though a "normal" race. In almost all cases you will not be using all of these options at the same time, but this is probably 95% of what you will ever use.

First line is the <thing> tag. After this line the other tags may not matter the order, but I will be doing them in the order of the originals anyway because it definitely works this way, and also it will make it easier to read the race for someone with some experience.

<thing id="rXXXX" name="XXXX" description="XXXXXXXXXXXX" compset="Race" uniqueness="unique">
or
<thing id="rXXXX" name="XXXX" description="XXXXXXXXXXXX" compset="Race" replaces="rXXXX" uniqueness="unique">

So it opens with <thing then the first element is id=rXXXX. The ID should start with r (that is the convention to denote that it is a race, since all <thing>s use the same id format, and you could accidentally bootstrap a race when you meant to do a power if you go off on your own convention. After the r you need to give the race a unique name; this is how HL refers to the race. If you duplicate another race's id, this will cause an error and one or both <thing>s with the same id will fail to load, and it can also cause a cascade failure within the files that have conflicting ids (I believe it stops reading the file when it finds a duplicate id, which means everything after it doesn't get loaded). If you are trying to replace a race in the base file (to, say, fix an issue with the base Elf), you will need to use the version with "replaces". More on that later. In this case, we want to homebrew race, called "The Race the DM Made Up". We don't want to give it too long of an ID (I think there is a limit of 10 characters total) so we will call this one "rRDMMU" which is less understandable than is ideal, but at least we can be reasonable certain it doesn't overlap with any other races.

<thing id="rRDMMU"

The name tag specifies what the name of the race will be. So we will call it "The Race the DM Made Up".

<thing id="rRDMMU" name="The Race the DM Made Up"

Description is text about the race - usually a list of powers the race gives you. This text is technically fluffy, but effectively crunchy. By which I mean this text does not tell HL anything, other than that is should show the text to the user. You will have to impliment the stuff promised in the description later; lucky for you, I will go over this. In this field you can have appostrophes, but you need to use the code for them, which is "&apos;", line breaks are "{br}", and other special things are escaped just like in HTML. {b} is for bold. The description is going to be:
"Godmother Wishgiving: You have the ability to grant wishes to crying teenage girls.
DM Weapon Proficiency: You gain proficiency with the longbow and the shortbow.
Awesome Origin: Your ancestors were native to the Awesomelands, so you are considered a awesome creature for the purpose of effects that relate to creature origin."

<thing id="rRDMMU" name="The Race the DM Made Up" description="{b}Godmother Wishgiving{/b}: You have the ability to grant wishes to crying teenage girls.{br}{b}DM Weapon Proficiency{/b}: You gain proficiency with the longbow and the shortbow.{br}{b}Awesome Origin{/b}: Your ancestors were native to the Awesomelands, so you are considered a awesome creature for the purpose of effects that relate to creature origin."

Next is the compset. This is how HL knows the <thing> is what it is. The code for a race is as predictable as it is elegant.

<thing id="rRDMMU" name="The Race the DM Made Up" description="{b}Godmother Wishgiving{/b}: You have the ability to grant wishes to crying teenage girls.{br}{b}DM Weapon Proficiency{/b}: You gain proficiency with the longbow, the shortbow, and all Superior Spears.{br}{b}Awesome Origin{/b}: Your ancestors were native to the Awesomelands, so you are considered a awesome creature for the purpose of effects that relate to creature origin." compset="Race"

Finally, races all have the unique tag. I'm not sure why. Maybe to prevent additional races from being added to a character? Whatever, all the other ones have them, and I've never tried to remove one to see what happens. Also then it is closed.

<thing id="rRDMMU" name="The Race the DM Made Up" description="{b}Godmother Wishgiving{/b}: You have the ability to grant wishes to crying teenage girls.{br}{b}DM Weapon Proficiency{/b}: You gain proficiency with the longbow and the shortbow.{br}{b}Awesome Origin{/b}: Your ancestors were native to the Awesomelands, so you are considered a awesome creature for the purpose of effects that relate to creature origin." compset="Race" uniqueness="unique">

"But wait," I hear you cry. "What about the replaces option?" That is how you leave the base files alone, but fix a problem. You put in the code for the thing you are fixing (rElf is Elf, rGoblin is Goblin, you should search through the races document if you want to find a specific one). What HL then does is when it comes upon this entry, it substitutes everything in this race for the one that you specified in the replaces tag. HL then continues using the ID in the replaces tag for everything, and the id for this race is effectively ignored. That said, you still need to have a different id for this replacement than the one you are replacing. You might call this one rfElf (f for fix). But on the program side it will act like this is rElf, so anything that refers to rElf will refer to this one. This is less of an issue for races than it is for powers or whatever. We will assume you don't want to substitute the DM race for any other because I want to make these insertable without messing everything up.

Next is the flavor text. This, as you can probably tell, is fluffy, and doesn't do anything to the program beyond specify what the flavor text should be. The flavor text here will be:
"This is the character the DM made up for balance reasons. Certainly not because he's interested in making a character for the party to fight that will end in a TPK."

<fieldval field=racFlavor value="This is the character the DM made up for balance reasons. Certainly not because he's interested in making a character for the party to fight that will end in a TPK."/>

Next we will specify what racial bonus(es) the race gets to its attributes. Here are all 6 options:

<fieldval field=racStr value=9/>
<fieldval field=racDex value=9/>
<fieldval field=racCon value=9/>
<fieldval field=racInt value=9/>
<fieldval field=racWis value=9/>
<fieldval field=racCha value=9/>

If the race has a bonus that can be applied to one of 2 or more attributes, that will be covered later. This is just where you specify the static bonus. IE, for Elf, this is where you say it get's a +2 Dex; the Int or Wis bonus is done later. This demo race is so good, it has two static bonuses. It gets +2 to Int, and +9 to Charisma, because it is the prettiest race ever.

<fieldval field=racInt value=2/>
<fieldval field=racCha value=9/>

Next, height and weight. That is Height Minimum, Maximum, Weight Minimum, and Maximum. These numbers speficy the range that can be picked in the program, but don't really matter. It will be weird if your character sheets says your pixie weighs 14 tons, but to my knowledge no feats or powers look at this number for any reason. Height (Ht) is spefied in Inches, and Weight (Wt) is in lbs. This example race is between 5'6" and 6'6", and weighs between 100 lbs and 2.5 tons. Because we can.

<fieldval field=racHtMin value=66/>
<fieldval field=racHtMax value=78/>
<fieldval field=racWtMin value=100/>
<fieldval field=racWtMax value=5000/>

Racial speed. How many 5 foot squares can this character move through in an unmodified move. This race, is of course superior in every way. The fastest normal character is 7, so this one will be 8.

<fieldval field=racSpeed value=8/>

Sourcebook -- which book does this race come from? Since this is homebrew, it doesn't come from one of the normal sourcebooks, so we will be making our own. See the Sourcebook tutorial for how to do this, and also a list of the standard sourcebook codes. When creating a character, you can specify which sources you want to include. Normally this is all of them, but you could exclude ones that don't fit your game, like Eberron. If the <thing> is from the three base books -- Player's Handbook, Monster Manual, or Dungen Master's Guide -- it does not have this line. There is no easy way to exclude base anything from character creation, and if this is a repair of a base race, you should exclude this line too (as there is no code for those three books to use).

<usesource source=DracusMa/>

Standard Race. Probably races that didn't come in the three base books should not have this tag, but the scrapping tool wasn't the finest thing, and made mistakes. I think this is one. Every race has it, so the filter option for using only "Standard Races" doesn't filter anything out. And of course, this race clearly should be in the ranks of elf and dwarf as far as basic races go, so it gets the tag too. You get standard race, you get standard race, everyone gets standard race.

<tag group=User tag=StdRace/>

Size. The example race is Medium size. If the race is instead Small or Tiny, you replace "Medium" with "Small" or "Tiny". There don't seem to be any large races, so I can't be sure it will work (no current races in the race files are large), but you can also try "Large". Let me know if you try it and it works.

<tag group=Size tag=Medium/>

Bonus Languages. For totally normal and required balance reasons, this race gets 4 bonus languages. Normally this is in the range of 0 (removing the line) or 1.

<fieldval field=racLang value=4/>

Bonus Feats. Again, the standard is 0 or 1. But again, this race is better, so gets 2. I mean more balanced, not better.

<fieldval field=racFeat value=2/>

Bonus Skills. Current races fall in two categories here. Either they have 0 bonus skills, or they are Human, and get 1. This Race is a new category, and gets 2.

<fieldval field=racSkill value=2/>

Fort/Ref/Will Defense bonuses. I'm lumping them together because they are very same-y, and it's clear with a little pattern recognition which is which. All races that I saw have at most +1 to usually just one of the three. Humans have a +1 to all three. This race gets a bonus of plus 1 to the two most common ones, and a plus 2 to fortitude to make up for only two races having a fort bonus. Balance.

<fieldval field=racFort value=2/>
<fieldval field=racRef value=1/>
<fieldval field=racWill value=1/>

Vision. There are three options that I know of in races at this moment. Normal vision, Lowlight, and Darkvision. If the character only has normal vision, you do not have the line for vision. Drow, for example, have Darkvision, and Eladrin have Lowlight vision, so they each have a vision line. It's almost never all the way dark, and lowlight is better than darkvision on a head-to-head when they both work, so this race has lowlight. Replace tag=Lowlight with tag=Darkvision if the race has darkvision. Delete the line if it is only normal vision.

<tag group=Vision tag=Lowlight/>

Racial skill bonuses. This is where you specify which skills the race is naturally good at. Go look at the Skill tutorial for more information about what the codes are for skills. This race only has one natural skill, and that is Arcana.

<tag group=SkillBonus tag=skArcana/>

Now, in the description, we stated that this race is good with both long and shortbows. This is half of an easy boast, because everyone is proficient with shortbows. But we then need to add ability to use longbows.

<tag group=WeaponProf tag=wpLongbow/>

Also, we need to add proficiency for all Spears that are Superior.

<tag group=WpGrpRqSup tag=wgSpear/>

They have slightly different formats, because the longbow proficiency came out of the "WeaponProf" group, while the Superior Spears proficiency came from the "WpGrpRqSup" group. WeaponProf is what's used to add a single weapon proficiency to the character. WpGrpRqSup is the group for adding all of a specific weapon group of Superior grade. For a list of all of the options for weapon proficiency, go to the Weapon tutorial.

Specified Languages. This is where you say which languages the race always can speak. I think all of them can speak common. This race is no different. You can also designate a racial language here. If the language doesn't exist normally, you will have to create the language using the Language tutorial. There is also a list of Language codes in the language tutorial. This character can also speak the language of all Awesome Plane creatures.

<bootstrap thing=lanCommon></bootstrap>
<bootstrap thing=lanAwe></bootstrap>

Now we add the racial features and powers. We have already handled the weapon proficiencys we promised in the description. This is where we make good on the rest of it. For a reminder, those other things were a power called Godmother Wishgiving, Awesome Origin, Group Awareness, and Wild Step. Also, even though we added the proficiency for the weapons, that just tells HL the character gets those proficiencies. We also want to tell the user about the proficiencies on their character sheet. So we have to bootstrap a few abilities onto this race, some of which we will also need to create. Powers have a little lowercase p in the front, and racial features have a little f in the front. Powers appear on power cards, racial features just do stuff and appear on the sheet. Features traditionally live inside the Race file, and power live in the power file, but there is no technical reason they can't all live in the same file, as you will see with the final race example.

<bootstrap thing=pGodmother></bootstrap> <!-- This adds the Godmother Wishgiving power-->
<bootstrap thing=fDMWeapPrf></bootstrap> <!-- This adds the DM Weapon Proficiency notice feature-->
<bootstrap thing=fAweOrigin></bootstrap><!-- Awesome origin notice-->

After adding all of the powers (or not, it doesn't matter except for visual flow - do it how you want) you can add the code that allows you to select which attribute gets a bonus that needs to be picked, you know, if the race has one of those. This race does. You can give either Strength a +2, Dexterity a +2, or Constitution a +2. Normally it's a pick between two, but this race doesn't play by anyone's rules.

<bootstrap thing=fRPlusAb>
  <autotag group=RaceBonus tag=attrStr/>
  <autotag group=RaceBonus tag=attrDex/>
  <autotag group=RaceBonus tag=attrCon/>
</bootstrap>

Bonus points if you can guess what the other three attribute tags would be. (attrInt attrWis attrCha).

And that's all there is to this <thing>. That means we need to tell HL that it should stop looking for more stuff.

</thing>

Once more, all together:

<thing id="rRDMMU" name="The Race the DM Made Up" description="{b}Godmother Wishgiving{/b}: You have the ability to grant wishes to crying teenage girls.{br}{b}DM Weapon Proficiency{/b}: You gain proficiency with the longbow and the shortbow.{br}{b}Awesome Origin{/b}: Your ancestors were native to the Awesomelands, so you are considered a awesome creature for the purpose of effects that relate to creature origin." compset="Race" uniqueness="unique">
  <fieldval field=racFlavor value="This is the character the DM made up for balance reasons. Certainly not because he's interested in making a character for the party to fight that will end in a TPK."/>
  <fieldval field=racInt value=2/>
  <fieldval field=racCha value=9/>
  <fieldval field=racHtMin value=66/>
  <fieldval field=racHtMax value=78/>
  <fieldval field=racWtMin value=100/>
  <fieldval field=racWtMax value=5000/>
  <fieldval field=racSpeed value=8/>
  <usesource source=DracusMa/>
  <tag group=User tag=StdRace/>
  <tag group=Size tag=Medium/>
  <fieldval field=racLang value=4/>
  <fieldval field=racFeat value=2/>
  <fieldval field=racSkill value=2/>
  <fieldval field=racFort value=2/>
  <fieldval field=racRef value=1/>
  <fieldval field=racWill value=1/>
  <tag group=Vision tag=Lowlight/>
  <tag group=SkillBonus tag=skArcana/>
  <tag group=WeaponProf tag=wpLongbow/>
  <tag group=WpGrpRqSup tag=wgSpear/>
  <bootstrap thing=lanCommon></bootstrap>
  <bootstrap thing=lanAwe></bootstrap>
  <bootstrap thing=pGodmother></bootstrap> <!-- This adds the Godmother Wishgiving power-->
  <bootstrap thing=fDMWeapPrf></bootstrap> <!-- This adds the DM Weapon Proficiency notice feature-->
  <bootstrap thing=fAweOrigin></bootstrap> <!-- Awesome origin notice-->
  <bootstrap thing=fRPlusAb>
    <autotag group=RaceBonus tag=attrStr/>
    <autotag group=RaceBonus tag=attrDex/>
    <autotag group=RaceBonus tag=attrCon/>
  </bootstrap>
  </thing>

That's it! Sorta. The race is complete, but it relies on certain things that don't exist. Specifically, it uses a Source that isn't standard (DracusMa), a Language (lanAwe), a power (pGodmother), and two Racial Features(fDMWeapPrf and fAweOrigin).


"Godmother Wishgiving: You have the ability to grant wishes to crying teenage girls.



<bootstrap thing=pXXXXXX></bootstrap>
<bootstrap thing=fXXXXXX></bootstrap>
<bootstrap thing=fRPlusAb>
<autotag group=RaceBonus tag=attrInt/>
<autotag group=RaceBonus tag=attrWis/>
</bootstrap>




<thing id=rXXXX name=XXXX description=XXXXXXXXXXXX compset=Race uniqueness=unique>
<fieldval field=racFlavor value=XXXXXXXX/>
<fieldval field=racStr value=9/>
<fieldval field=racDex value=9/>
<fieldval field=racCon value=9/>
<fieldval field=racInt value=9/>
<fieldval field=racWis value=9/>
<fieldval field=racCha value=9/>
<fieldval field=racHtMin value=99/>
<fieldval field=racHtMax value=99/>
<fieldval field=racWtMin value=999/>
<fieldval field=racWtMax value=999/>
<fieldval field=racSpeed value=9/>
<usesource source=XXXXXXX/>
<tag group=User tag=StdRace/>
<tag group=Size tag=Medium/>
<fieldval field=racLang value=9/>
<fieldval field=racFeat value=9/>
<fieldval field=racSkill value=9/>
<fieldval field=racFort value=9/>
<fieldval field=racRef value=9/>
<fieldval field=racWill value=9/>
<tag group=Vision tag=Lowlight/>
<tag group=SkillBonus tag=skNature/>
<tag group=WeaponProf tag=wpLongbow/>
<tag group="Race" tag="rXXXXX"
<bootstrap thing=lanCommon></bootstrap>
<bootstrap thing=lanXXXXX></bootstrap>
<bootstrap thing=pXXXXXX></bootstrap>
<bootstrap thing=fXXXXXX></bootstrap>
<bootstrap thing=fRPlusAb>
<autotag group=RaceBonus tag=attrInt/>
<autotag group=RaceBonus tag=attrWis/>
</bootstrap>
</thing>  



    <fieldval field="racDex" value="2"/>
    <fieldval field="racHtMin" value="64"/>
    <fieldval field="racHtMax" value="72"/>
    <fieldval field="racWtMin" value="130"/>
    <fieldval field="racWtMax" value="170"/>
    <fieldval field="racSpeed" value="7"/>
    <tag group="User" tag="StdRace"/>
    <tag group="Size" tag="Medium"/>
    <tag group="Vision" tag="Lowlight"/>
    <tag group="SkillBonus" tag="skNature"/>
    <tag group="SkillBonus" tag="skPercepti"/>
    <tag group="WeaponProf" tag="wpLongbow"/>
    <tag group="WeaponProf" tag="wpShortbow"/>
    <bootstrap thing="lanElven"></bootstrap>
    <bootstrap thing="pRacElvAcc"></bootstrap>
    <bootstrap thing="fRElElvWea"></bootstrap>
    <bootstrap thing="fRPlusAb">
      <autotag group="RaceBonus" tag="attrInt"/>
      <autotag group="RaceBonus" tag="attrWis"/>
      </bootstrap>
    <bootstrap thing="lanCommon"></bootstrap>