Lesson #3: .lst - Races (Part 1)

By Professor Chris Chandler (Barak).

File(s) Covered: *races.lst

Tags used:

OUTPUTNAME, FAVCLASS, SIZE, MOVE, REACH, VISION, PREALIGN, LANGAUTO, LANGBONUS


This is the beginning of several lessons that will be necessary to cover the creation of a race file.  There  are many tags, and some of them will take some seriously long explanations, so get some munchies and a drink,  get comfortable and we'll get started.

Since the race lines can get exceedingly long, and yahoo will wrap my lessons, I'll also post a file that may  be perused as you're reading this.  (Be sure to turn off word-wrap on your text file reader!)

I'm going to develop a file that contains two races. One will be from the Monster Manual so you can see how  to do an already existing race and the other I'm going to make up on the fly and use to demonstrate every tag I can remember.  :p

One thing to note is that these will be considered "monster" races. Towards the end of the lesson i'll go  back through and create a player character only race.

We'll do a Solar and, ummm, I know!  Ninja Monkeys!  :)

First, a couple of general rules:  Every tag needs to be separated with tabs.  Spaces may be used within  names, etc, but never at the beginning or end.  There should never be a space-tab or a tab-space combination as this will make the parser choke and die.

Although any text editor will do, a text editor that can do syntax colorization is also a good idea.  I use a  program called TextPad.  You can also use UltraEdit and I believe there is one called Crimson.

I'll use "mystuff_races.lst" as the file name.  This conforms to the the new naming convention adopted by the  PCGen lstmonkey crew recently. Basically it is in the format of "source_filetype.lst".


Race Name

The race file is currently a lst file that has one racial entry per line.  The first thing on each line is  the race name.  There is no tag for it, the program assumes that whatever is there is the name of a race.

One thing to consider when entering the race name is grouping (all demons together, etc).  A Solar is a  celestial, and we'd like it to show up with other celestials, so the name I'm going to enter will be "Celestial (Solar)".  On the next Line I'll enter "Ninja Monkey". 


OUTPUTNAME

Now, "Celestial (Solar)", while making it easy to find in the race list with the other celestials will look  kind of funny on output, so we'll use the OUTPUTNAME tag to change what will appear on output (if the user has the preference checked to use it).

The OUTPUTNAME tag can be used in a couple of different manners.  You can completely change the name of an  object (as far as output is concerned) and not reference the real name at all, or you can use part of the real  name.  A special string was developed to grant access to only the text contained in parentheses.  That string is  "[NAME]" (no quotes).

So, if we wanted the name on output to be "Celestial, Solar", we could do it two different ways. 1) OUTPUTNAME:Celestial, Solar or 2) OUTPUTNAME:Celestial, [NAME].  I don't like either one of those...  I  just want it to be called a "Solar" on output, so I'm entering the tag like this:

OUTPUTNAME:[NAME]

The name "Ninja Monkey" is just fine as it is, so we'll skip an OUTPUTNAME tag on this one.


FAVCLASS

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:

FAVCLASS:Monk


SIZE

Every creature has a size.  The size tag uses the first letter of each size category, so the possible choices  are F (Fine), D (Dimunitive), T (Tiny), S (Small), M (Medium), L (Large), H (Huge), G (Gargantuan), and C  (Colossal).

The Solar is a Large creature so on that line we'll enter a couple tabs and then put "SIZE:L".  The Ninja  Monkey is man-sized (Medium), so we'll put "SIZE:M" on that line.


MOVE

To define a race's movement modes and rates we use the MOVE tag.  The format is "MOVE:mode,rate,mode,rate".   You can enter as many movement modes and rates as you want.

Looking at the Solar in the MM, they list "SPEED:50ft,fly 150ft".  The first number is always their "Walk"  (otherwise known as "Base") movement rate, except for those races that can't walk like some plants. So on  the Solar's line we will enter (remember to put a tab or two between the last tag and this new one):

MOVE:Walk,50,Fly,150

I'm going to give the Ninja Monkey a walk rate of 30 and a climb rate of 20, so the  tag for his line would be:

MOVE:Walk,30,Climb,20


REACH

Every creature has a reach.  this is usually defined by the size of the character, but certain creatures (like  those with long tentacles) have a longer reach than they normally would for a creature of their size.

We use the REACH tag to define this characteristic.  The format is "REACH:distance".

A Solar has a reach of 10 feet since it is a large creature, so on it's line we'll enter "REACH:10".  The  Ninja Monkey is a medium size creature (w/o tentacles  :p) so it will get the standard reach for a medium-size creature of 5 feet.  "REACH:5" goes on his line.

 


VISION

We use the VISION tag to define the various types of vision a creature has.  You can have more than one type  of vision listed by using "|" (pipe) character to separate them.  That makes the tag format "VISION:type  (distance)|type (distance)".  Note that the (distance) part is optional.

A creature's vision is (in most cases) defined by the type of creature it is, unless it's description states  otherwise.  In the case of the Solar, it has no information on it's vision in it's description, but there is  information in the section about ALL Celestials, so we'll use that information. It says that all Celestials  have Darkvision with a range of 60 feet and Low-light vision.  The tag for the vision of a Solar would be:

VISION:Darkvision (60')|Low-light

The Ninja Monkey I'm going to classify as a Monstrous Humanoid. According to the section on Monstrous  Humanoids in the MM (pg. 5) Monstrous Humanoids get Darkvision with a range of 60 feet.  Their tag will read:

VISION:Darkvision (60')


PREALIGN

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.  They 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).

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.


LANGAUTO

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:

LANGAUTO:Celestial,Infernal,Draconic

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:

LANGAUTO:Common,Monkey


I'm going to end this lesson at this point.  If you have questions, please e-mail them to the list.  While  they will not appear there, I will receive them.  I will gather them, merge them together (thus eliminating  duplicate questions and keeping traffic to a minimum) and post them along with the answers I come up with.

The example file for this lesson can be found at the LSTfileclass Yahoo Group in the files section here.

Barak
LST Chimp