Lesson #6: .lst - Races (part 4)

By Professor Chris Chandler (Barak).

File(s) Covered: *races.lst

Tags used:


This will be the final lesson on creating "monster" race files. Once you've read through this and understand it (and the preceding lessons) you should not have too much difficulty in creating a monster race file for PCGen.

With that said, there's a lot of material to be covered, so lets dive right in.


To define the skills that are considered class skill for each race we use the MONCSKILL tag.  Following the tag is a list of the race's class skills, separated by the pipe ("|") character.

To determine a race's class skills, we once again turn to the "Skills" section of the race's listing (when entering an existing source and not making up a new race).  Every skill listed there is a class skill for that race.

The Solar's entry would be:

MONCSKILL:Concentration|Escape Artist|Hide|TYPE.Knowledge|TYPE.Craft|Listen|Move Silently|Search|Sense Motive|Spellcraft|Spot

Note that we have granted ALL Knowledge and Craft skills as racial skills since they may choose from among all of them.

The entry for the Ninja Monkey will be much shorter.

MONCSKILL:Balance|Hide|Jump|Listen|Move Silently|Spot


Note: The PCGen data team is moving away from using the "Default Monster" setting.  Default Monster Kits are being used instead.

Now comes another section where we have to work backwards to arrive at the numbers we need to use.  This would be to determine what ranks the race gets in each skill.

To begin, we look in the race listing at the "Skills" section.  The numbers given here are the final numbers  once everything (racial bonuses, armor/encumbrance, stat modifiers, feats, etc) is taken into account.  They assume that all equipment listed for the monster is present and equipped and affecting those physical skills where they should.

For the Solar, the first skill listed is Concentration.  The final value should be +16.  We'll begin by subtracting the appropriate stat modifier (5 from constitution), so we're down to +11.  Looking further, we see no racial skill modifiers for this skill, no feats that affect it and since it's not a physical feat equipment would have no effect.  Our tag for this skill would be:


Next up is the Escape Artist skill.  The final value needs to be +30. Subtracting the stat modifier for the skill (5 from dexterity) puts us at +25.  Once again there are no racial bonuses or feats affecting this skill. It is physical so we need to check that there are no armor or encumbrance to affect it.  The two  pieces of equipment for a solar are it's greatsword and it's longbow.  These are not enough to encumber it, so there is no effect on the physical skills.  Leaving us with a skillrank of 25.

Several of the other skills work out to have this value after doing all the math, and the BONUS:SKILLRANK tag  will let us apply the same bonus to multiple skills by simply listing them in a comma separated list.  Our final tag for this skill (and several others) would be:

BONUS:SKILLRANK|Escape Artist,Hide,Listen,Move Silently,Sense Motive,Spot|25|PREDEFAULTMONSTER:Y

Note that a Solar gets a choice of any five craft skills OR any five knowledge skills.  To let the PCGen user  make these choices, we need to get a little bit creative.  :)  I've created a set of feats that will present a chooser for knowledge or craft skills, and after choosing one it will present a chooser listing all of the  skills of the selected type and allow them to pick five of them and then assign the appropriate number of  ranks to those skills.  I use an " ADD:FEAT(TYPE=FiveKnowledge22,TYPE=FiveCraft22) " tag in this race file to  start the feat chooser.

I will wait to cover the creation of these feats until we go over feat files, but I wanted to make sure and  mention their use here as the situation of a race getting a choice of certain skills comes up with some regularity and you need to know how to deal with it.

For the Ninja Monkey its somewhat simpler.  We just need to determine how many skill points he should have for  his race type and HD and then choose what skills he gets ranks in.  According to the MM (pg. 11) A Monstrous Humanoid should have 2 x Intelligence score +2/EHD.  So the Ninja Monkey gets 30 skillpoints to spend.

I think I'll give him ranks in Balance, Hide, Jump, Listen, Move Silently and Spot.  TO keep it simple I'll  just divide the skillranks equally among these skills.  Our tag would be:

BONUS:SKILLRANK|Balance,Hide,Jump,Listen,Move Silently,Spot|5|PREDEFAULTMONSTER:Y


Several races get racial modifiers to certain skills.  Some of them are listed in the race write up (often these are skills such as Search, Spot and Listen), and some (movement related ones) are not.  (Gotta love WotC). Creatures that have a natural Climb movement rate get a +8 to the Climb skill.  Creatures that have a natural swimming movement rate get +8 to their Swim skill.  These bonuses are now coded in the skill entry  however so we do not need to enter them in the race file.

We apply these racial skill bonuses using the BONUS:SKILL tag.  You can use this tag for a single skill, or multiple ones separated by commas as long as the bonus value is the same for each skill.  If there are two skills with two different bonus values, you have to use two separate BONUS:SKILL tags.

To indicate that these are Racial bonuses we add " |TYPE=Racial " to the end of the tags.

Reading through the Solar write-up we discover that they do not get any racial bonuses to skills.

For the Ninja Monkey, I'm going to give them a +4 racial bonus to both Balance and Jump checks.  Our tag for this would be:


MFEAT ( Deprecated ) This tag is no longer supported by PCGen.

Note: The PCGen data team is moving away from using the "Default Monster" setting.  Default Monster Kits are being used instead.

To grant racial feats we use the MFEAT tag.  This is very similar to the MONCSKILL tag in that the tag is followed by a list (of feats instead of skills) separated by the pipe character.

To determine a race's feats we simply look in the "Feats" section of their listing.

A couple of things to pay special attention to when entering feats using the MFEAT tag:  Often a race will have a feat multiple times, but with a different target, such as Weapon Focus with their claws and their bite.  This would be entered as a single entry with two targets, like this:  Weapon  Focus(Bite,Claw).

It should also be noted that there should be no space between the feat name and the left paren.  This is true whenever you reference a feat with a target, in any kind of .lst file.

Our entry using this tag for the Solar would be:

MFEAT:Cleave|Dodge|Great Cleave|Improved Initiative|Mobility|Power Attack


The CR tag is used to set the challenge rating for the race. It takes the form of CR:<number>. A creature with a challenge rating of 4 would get a "CR:4" tag. One with a challenge rating of 1/2 would get "CR:1/2".

The Solar has a challenge rating of 19, so the tag would read " CR:19 ".

The Ninja Monkey has a challenge rating of 2, so his tag would read " CR:2 ".


Next up is our race's alignment.  In many cases while a certain race might lean towards one alignment, they don't always have to be that alignment.  The key word to look for when creating LST files and doing alignments is "always".  Looking at the alignment entry for a Solar, we see that is says "Always good (any)".  So we need to restrict the alignments available to the race to the 'good' ones.

To set the alignment a creature MUST be, we use the PREALIGN tag.  The format is "PREALIGN:#,#,#" and the requirement is that the race be one of the listed alignments.

The alignments have been defined by numbers as follows: 0 (Lawful Good), 1 (Lawful Neutral), 2 (Lawful Evil),  3 (Neutral Good), 4 (True Neutral), 5 (Neutral Evil), 6 (Chaotic Good), 7 (Chaotic Neutral), 8 (Chaotic  Evil).

Note: In PCGen versions after 5.7.6 you can (and should) use the two letter abbreviations for alignments: LG,LN,LE,NG,TN,NE,CG,CN,CE.

Since the Solars must be of good alignment, the tag for them will read " PREALIGN:0,3,6 ".

The Ninja Monkey race is usually Chaotic Good, but not always, so we will simply not put in a PREALIGN tag for them.


We use the HITDICEADVANCEMENT tag for those races that change size as their hitdice change. It takes the format of HITDICEADVANCEMENT:#,#,#. The "#" should be replaced by the number corresponding to the last number of HD for that size. For a race that was Small from 3-4 HD, Medium from 5-6 HD and Large from 7-10 HD the tag would read "HITDICEADVANCEMENT:4,6,10".

When the race advances by class or has no advancement listed this tag should be left out.

The solar shows an advance of 22-33 for Large size and 34-66 for Huge. So the tag for him will be " HITDICEADVANCEMENT:33,66 "

For the Ninja Monkey, he's advances by character class, so will get no HITDICEADVANCEMENT tag.


The LEVELADJUSTMENT tag is used for those races that might conceivably be used as player characters to keep them in balance with all the regular PCs.

The Solar is such a high-level creature that it does not have a level adjustment.

The Ninja Monkey, due to his several small special abilities would get a +2 level adjustment, so his tag would read " LEVELADJUSTMENT:2 ".


We use the FAVLASS tag to set a race's favored class.  The Solar doesn't have one, so we'll skip this tag for them, but I want the Ninja Monkey favored class to be Monk.

On the Ninja Monkey line I put in a tab or two and then enter:



Many races get certain languages automatically by the simple virtue of being of that race.  To grant these languages to the races we create we use the LANGAUTO tag.  Immediately following the tag is a comma delimited list of the languages the race receives.

Looking at the Solar listing, it says nothing about languages in the specific description, but again in the general section about all celestials, it says they speak Celestial, Infernal and Draconic.  So our LANGAUTO tag for them will look like this:


For the Ninja Monkey I think the only two languages I'll grant them automatically are their own Monkey  language and Common, so their tag will look like this:



Races that can be player character races generally also have a number of bonus languages that the creature can pick from when spending its Int-based language picks.  The tag for this works just like the LANGAUTO tag.

Since the Solar can't really be a player character no bonus languages are listed so we skip this tag.

For the Ninja Monkey I will grant them Elven, Goblin, and Sylvan as their bonus languages.



The LEGS tag is used to denote the number of legs a creature has. PCGen uses this in the calculation of what the load/encumbrance ranges for a race are. Sometimes the description of the race will tell you how many legs it has, sometimes you have to just refer to the pictures provided. :p

Both the Solar and our Ninja Monkey have two legs, so the tag for both races will be " LEGS:2 ".


The HANDS tag is used to denote the number of hands a creature has. This is used to determine how many weapons it can hold. When you go to the equipping screen it will offer to let you equip weapons to your primary hand and also show a location for each secondary hand. So a creature with four hands could equip one weapon as primary and three as secondary. This tag has no affect on a race's natural attacks.

The Solar and our Ninja Monkey both have two hands, so our tag for both races would be " HANDS:2 "


The SPELLS tag is used to grant innate spellcasting (and some spell-like abilities). We use it for spell-like abilities when they grant the full spell effect. If it is restricted in some way (some races can use a summon monster spell but only to summon a certain creature, etc.), we simply list it as an SA.

Alternately, you can create a version of the spell with the modifications the race needs included in the description.  The spell should be added with no CLASS or DOMAIN tags.  Once the spell is created you can use the SPELLS as normal.

The format is SPELLS:<name of spellbook>|TIMES=<times per day>|CASTERLEVEL=<level the spell is cast at>|<name of spell>,<DC of spell>|<name of spell>,<DC of spell>|etc... If you put a "-1" in the times per day slot that means that they can use the spell at will, and on output, "At Will" will appear in the spell listing. For the spellbook name, we usually use "Innate" for racial spells.

The Solar has a whole listing of spells, so the tag for them would be:

SPELLS:Innate|TIMES=-1|CASTERLEVEL=20|Aid|Animate Objects|Commune|Continual Flame|Dimensional Anchor|Greater Dispelling|Holy Smite,21|Imprisonment|Improved Invisibility (Self Only)|Lesser Restoration|Remove Curse|Remove Disease|Remove Fear|Resist Elements|Summon Monster VII|Speak with Dead
SPELLS:Innate|TIMES=3|CASTERLEVEL=20|Blade Barrier,23|Earthquake,25|Heal|Permanency|Resurrection|Shapechange,
SPELLS:Innate|TIMES=1|CASTERLEVEL=20|Greater Restoration|Mass Charm,25|Power Word (Blind),25|Power Word (Kill),26|Power Word (Stun),24|Prismatic Spray,24|Symbol,24|Wish

The Ninja Monkey has one very simple spell-like ability and that is Pass without Trace at will. The monster description does not specify a caster level for the ability so we will leave that field blank.  The tag would then look like:

SPELLS:Innate|TIMES=-1|Pass Without Trace


This is just what it seems, where we indicate the page from the source material where you can find the text and stats for the race.

When you are going from an OGL book the format is usually SOURCEPAGE:p.#

If you are working from an online document such as the SRD, it would be the filename, so SOURCEPAGE:<filename>/

For the solar, we pulled him from the SRD so his tag would be " SOURCEPAGE:srdmonstersc.rtf ".

The Ninja Money is from my custom races file, so Il make the tag for him " SOURCEPAGE:customraces.txt ".

Well, this brings to a close the lessons on creating monster races for use in PCGen. Hopefully everything I've talked about has made sense to you all. :)

LST Chimp