# 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