By Eric C. Smith (Maredudd) and Andrew McDougall (Tir Gwaith)
File Covered: *_deities.lst
Tags Used:
DOMAINS,
ALIGN,
DEITYWEAP,
PANTHEON,
TITLE,
APPEARANCE,
WORSHIPPER,
DESCISIP,
SOURCEPAGE
The deity files are used to set up and describe the deities that provide the divine inspiration for your game setting. Unfortunately, the RSRD does not include any deities and therefore PCGen does not provide any, at least 'out of the box'. That means you will have to either create your own deities within PCGen or input them from any of the many commercial sources available in order to take advantage of the special powers and spells granted to clerics through the various deities and the domains they oversee. To that end, with this lesson I will be showing you the ins-and-outs of deity LST-ing.
The material will be broken down into three sections, the first of which will introduce you to the basic tags required to create a useful deity within PCGen, including some tags that are used by PCGen in files other than the deity file. The second section will cover additional tags that will help flesh out the detail for your deities, providing descriptive text that will help identify what the deity is about as well as in selecting the right one for the character. The third section will cover the tags used to provide the proper source identification for the encoded deities. For those of you that have gone through the previous LST Classes, some of the global tags, especially the last section, will be repetitive. Feel free to skip those tag descriptions if you like. These classes are being written for the new LST-coder, so there will be some overlap, but a student of the classes does not need to take them in order.
As I stated above, there are no deities listed in the RSRD from which to draw examples from but there is an example in the my_deities.lst file which can be found inside PCGen. For additional examples, and to stay clear of any copyright issues, I have created two completely copyright free sample deities from which to build this class material.
The CONTENTed One
Demigod
Pantheon: BoD
Symbol: A Kitten on a Keyboar
Alignment: Chaotic Good
Portfolio: PCGen Datasets
Worshipers: LST Monkeys
Cleric's Alignment: NG, CG, CN
Domains: Chaos, Knowledge, Animal
Favored Weapon: Tiger Claws
Description: The great content provider. He is usually seen as a small simian stooped over a wireless keyboard typing madly as he travels the world setting all knowledge down in the LSTs.
The Flourishing one
Lesser Deity
Pantheon: Olympian
Symbol: A Shepherds Crook upholding a Comic Mask
Alignment: Neutral Good
Portfolio: Comedy, Pastoral Poetry
Worshipers: Comedians and Pastoral Poets
Cleric's Alignment: LG, NG, TN, CG
Domains: Good, Knowledge, Poetry
Favored Weapon: Shepherd's Crook
Description: The muse of comedy and of playful and idyllic poetry, Thalia inspires those so inclined to produce great works of comedy as well as peaceful, and pastoral, works of poetry. She is sometimes seen with a crown of ivy and a shepherds crook.
A quick note on a few general conventions used within this class before we jump into it:
1) I have used the angle brackets, 'Less Than' and 'Greater Than' symbols, to indicate where your text will be entered when building a deity file. Unless explicitly stated in the text of my explanation, you will not include the angle brackets in your tags.
2) Coding examples and PCGen tags are identified by <code>
style.
3) When referencing a specific PCGen object, i.e. deity, feat,
weapon, etc., I have included the name as BOLD
text, except for when the object is part of a <code>
example.
Without further adieu, lets jump right into the lesson.
This section will introduce you to the tags required to implement a simple deity within PCGen. That is, the minimum set of tags needed to implement a deity within PCGen.
The deity file is currently a *.lst file that has one deity entry per line. The first thing on each line must be the name of the deity. There is no tag for it as the program assumes that whatever is at the beginning of the line is the name of a deity. This means that the entries into our data file begin as follows:
MoSaT
<TAB>
Thalia
<TAB>
Tag Format: DOMAINS:<domain list>
This tag sets the domains the deity makes available to divine
casters. The text following the tag is a comma-delimited list of domain names with
no spaces included. It is important that the domains listed must be defined in a
domain.lst file that has been loaded into PCGen. When
making your own deity, you may include as many domains as you wish, though prudence
may dictate limiting the number for if a deity has all domains, which can be done by
simply using ALL
as the sole argument, there is no need for additional
deities, and what fun would that be.
The PRExxx
tag may be used as an optional tag added
at the end of the domain list, separated by a pipe (|). These prerequisites are checked
against the divine caster to determine if he/she is allowed to select the domains listed
in that particular DOMAINS
tag. Typically, the PREALIGN
tag is
used to restrict what alignments a cleric/class with access to domains can be to have
access to the domains. For more depth on PREALIGN
syntax and usage itself,
scroll down a bit. It can be used by itself on the line (with slightly different meaning
for the user) and is explained more in depth there.
PCGen provides some flexibility in how the DOMAINS
tags
are applied, allowing some fairly complex application, but most usage of this tag is fairly
simple so you might just skip over the next paragraph. On the other, if you wish to explore
this flexibility, the following explanation can get you started.
When using the PRExxx
tags at the end of the DOMAINS
tag, all domains listed in that tag will be restricted if the PRExxx
tag isn't
satisfied. Fortunately, PCGen allows the placement of multiple DOMAINS
tags in the
same deity line, and each DOMAINS
tag can have its own PRExxx
tag, or
none at all. With multiple DOMAINS
tags, the PRExxx
tags are applied
only to the domains included in that specific DOMAINS
tag but all domains included
in each DOMAINS
tags are made available to the divine caster, that is if the
appropriate prerequisites have been satisfied.
At this point we are ready to build the DOMAINS
tags for our two example deities.
MoSaT is listed as having the domains of
Chaos, Knowledge, and
Animal, so this tag will appear as
DOMAINS:Chaos,Knowledge,Animal
. If we wish to restrict the selection of the
Chaos domain to only those divine casters who are chaotic,
we can break the DOMAINS
tag into the following two tags:
DOMAINS:Chaos|PREALIGN:CG,CN
<tab> DOMAINS:Knowledge,Animal
.
Thalia is
listed as having the domains of Good,
Knowledge, and Poetry,
so this tag will appear as DOMAINS:Good,Knowledge,Poetry
.
If we wish to restrict the selection of the Good
domain to only those divine casters who are good, we can break the DOMAINS
tag into the following two tags: DOMAINS:Good|PREALIGN:LG,NG,CG
<tab> DOMAINS:Knowledge,Poetry
Example:
MoSaT
<TAB> . . .
<TAB>DOMAINS:Chaos,Knowledge,Animal
(without the PRExxx
tags.)
MoSaT
<TAB>
. . . <TAB> DOMAINS:Chaos|PREALIGN:CG,CN
<tab>DOMAINS:Knowledge,Animal
(With the PRExxx
tag.)
Thalia
<TAB> . . . <TAB >
DOMAINS:Good,Knowledge,Poetry
(without PRExxx
tags.)
Thalia
<TAB> . . .
<TAB> DOMAINS:Good|PREALIGN:LG,NG,CG
<tab> DOMAINS:Knowledge,Poetry
(with PRExxx
tags.)
ALIGN
Tag Format:ALIGN:<alignment>
This tag identifies the alignment of the deity. The generally
accepted entries in the text field are LG
, NG
,
CG
, LN
, TN
,
CN
, LE
, LN
and CE
representing the following alignments:
Lawful Good, Neutral Good, Chaotic Good, Lawful Neutral, True Neutral,
Chaotic Neutral, Lawful Evil, Neutral Evil and Chaotic Evil. This tag
isn't strictly necessary, but is used in PREDEITYALIGN
tag, and a few other places, so we are including it with the critical
tags.
If you examine the stat blocks for our example deities, you will find each lists an alignment: 'Chaotic Good' for MoSaT, and 'Neutral Good' for Thalia. Using the appropriate abbreviations, we get the tag implementations listed below.
Example:
MoSaT
<TAB> . . .
<TAB> ALIGN:CG
Thalia
<TAB> . . .
<TAB> ALIGN:NG
PREALIGN
Tag Format: PREALIGN:<alignment
abbreviation>
This tag establishes a restriction, based on the electing
character's alignment, on which deities may be selected. This tag, in
conjunction with the DOMAINS
tag, replaces
the functionality of the FOLLOWERALIGN
tag,
which, as it has been deprecated, isn't being covered in this class.
The argument for this tag is a comma-delimited list of
alignments by abbreviation. The accepted entries in the text field are LG
,
NG
, CG
, LN
,
TN
, CN
, LE
,
LN
and CE
representing the following alignments: Lawful Good, Neutral Good,
Chaotic Good, Lawful Neutral, True Neutral, Chaotic Neutral, Lawful
Evil, Neutral Evil and Chaotic Evil. These abbreviations are defined in
the statsandchecks.lst file in the Game Mode
section of the PCGen documentation. There is one additional 'alignment'
which can be included. That is deity
, which
simply refers back to the selected deities own alignment.
If you examine the stat blocks for our example deities, you will find each includes a 'Cleric's Alignment' listed. MoSaT's clerics must be neutral-good, chaotic-good and chaotic- neutral while Thalia's clergy must be lawful-good, neutral-good, true-neutral, or chaotic-good. Using the syntax described above and the appropriate abbreviations, we get the tag implementations listed below.
Example:
MoSaT
<TAB> . . .
<TAB> PREALIGN:NG,CG,CN
Thalia
<TAB> . . .
<TAB> PREALIGN:LG,NG,TN,CG
DEITYWEAP
Tag Format: DEITYWEAP:<favored
weapon>
This tag provides the deity's favored weapon. This entry is a pipe-delimited (|) list of weapon proficiencies (defined in weaponprof.lst file, or the tag won't really do anything.) This is included with the basic tags because, unlike purely descriptive tags, this information is used in the game mechanics, at least in a minor way. The easiest example is if a character is a cleric for a deity of war, that being a deity that has the War domain as one of his domains, and if that cleric has chosen the War domain as one of his domains, then proficiency with the deity's favored weapon is automatically granted. Note that it is important that any favored weapon for a deity with the War domain must be included in at least one of the loaded datasets. The game mechanic is also there for other bonuses and checks to see that the character has the Deity's favored weapon, but that is more advanced stuff, so we'll leave for a different class.
Examining the stat blocks for our deities, we find MoSaT uses 'Tiger Claws' while Thalia uses the 'Shepherds Crook'. The implementation of this tag for our deities is shown below.
Example:
MoSaT
<TAB> . . .
<TAB> DEITWEAP:Tiger Claws
Thalia
<TAB> . . .
<TAB> DEITWEAP:Shepard Crook
Well, this wraps up part 1 of this class. With the info above, you can create a basic deity and give it enough functionality to bring it to life for your cleric's, and the party's enjoyment.
In the previous section we covered the minimum set of tags required to properly implement a deity in PCGen. In this section we will be covering the tags that are used to flesh out your deities by providing additional detail. The additional detail is used primarily to allow for different ways in which to sort the deities during the character generation procedure, as well as adding flavor to your game. No game mechanics use these tags directly. You will also find that these tags are very simple to implement.
PANTHEON
Tag Format: PANTHEON:<pantheon
name>
This tag establishes the pantheon to which the deity belongs. Examples of these pantheons are the standard racial pantheons (i.e. Elven, Dwarven, etc.), historical pantheons (i.e. Greek/Olympian, Roman, Scandinavian/Aesir, etc) or campaign/homebrew pantheons. In practical use, this tag is used to allow deities to be sorted during character generation, in this case, by the pantheon that it belongs to.
The deity stat blocks above list the pantheon for MoSaT as BoD and for Thalia as 'Olympia', leading to the tag implementation listed below.
Example:
MoSaT
<TAB> . . .
<TAB> PANTHEON:BoD
Thalia
<TAB> . . .
<TAB> PANTHEON:Olympia
TITLE
Tag Format: TITLE:<descriptive
title>
This tag provides the deity's descriptive title, providing an element of storytelling, or flavor to your game. The argument for the tag is a simple text entry. For our two deities you will find the title listed just beneath the deity's name, thus MoSaT is called 'The CONTENTed One' and Thalia is called 'The Flourishing One'. You can see the implementation of this tag for each deity below.
Example:
MoSaT
<TAB> . . .
<TAB> TITLE:The CONTENTed One
Thalia
<TAB> . . .
<TAB> TITLE:The Flourishing One
APPEARANCE
Tag Format: APPEARANCE:<descriptive
appearance>
This tag provides the deity's descriptive appearance and implementing it for our two deities is simple. The argument, the descriptive appearance, is a simple text entry. For our two deities you will find the appearance included with the general description. Its a simple matter to review the text and extract the simplest physical description you can. You can see the implementation of this tag for each deity below.
Example:
MoSaT
<TAB> . . .
<TAB> APPEARANCE:He is usually seen as a
small simian stooped over a wireless keyboard typing madly.
Thalia
<TAB> . . .
<TAB> APPEARANCE:She is sometimes seen with
a crown of ivy and a shepherds crook
WORSHIPPERS
Tag Format: WORSHIPPERS:<typical
worshipers>
This tag provides a list of the deity's typical worshipers; whether by class, race, occupation, eye color, speech-pattern, etc. All text following the tag up tothe next <TAB> or <RETURN> is assumed to be a descriptive list of these typical worshipers. This tag is not referenced by anything; it is purely descriptive.
To implement this tag for our two deities you can find the typical worshipers listed in the stat blocks identified by the 'Worshipers' label . . . imagine that! You can see the implementation of this tag in the examples below.
Example:
MoSaT
<TAB> . . .
<TAB> WORSHIPPERS:LST Monkeys
Thalia
<TAB> . . .
<TAB> WORSHIPPERS:Comedians and Pastoral
Poets
This completes section 2 of this class material. You can now fully encode any deity you desire!
If you are building homebrew data sets you can skip this section, as you will not need the following tags. If, on the other hand, you are planning on making lots of personal datasets for books you own they are useful.. If you are building datasets as a PCGen Data Monkey, they are very important so please bear with me and we'll get through this as quickly as possible.
DESCISIP
Tag Format: DESCIP:<YES
or NO>
This tag is used to identify the deity description text as either 'Product Identity' or not. What is product identity (PI)? That's a very good questions that any lawyer can answer for you for a mere $150 per hour, unless of course you have abused the same PI, not recommended, in which case you will likely have to pay a lot more.
PI, in a nutshell, is material that has not been released under the Open Gamers License (OGL). Inclusion of any PI requires separate permission from the publisher that owns the material. If you are coding a deity from a source for the PCGen Project and you have PI, also called 'Closed Content', that material needs to be identified as such within the lst file. If you have any questions concerning the material you are lsting, feel free to consult with any member of PCGen's Data License Team. They can help to clarify any confusion.
As for this tag itself, it is fairly simple to implement as
the argument for the tag is a simple boolean and will take only YES
or NO
as values. For our sample deities, the
first created as an example in the my_deity.lst
file, and the other created out-of-thin-air for this lst class, the
descriptions are not PI; therefore, we would implement this tag as DESCISPI:NO
.
Or we would if it was really necessary for if the tag is not included
PCGen defaults to NO
so we won't actually
include the tag in our deity file.
SOURCEPAGE
Tag Format: SOURCEPAGE:<source
page text>
Simply put, this tag provides the specific page reference within the source
from which the deity information was taken. The source page text generally takes the form of
<p.#>
with the pound sign (#) being replaced by the page number on which the
deity information can be found within the source material. For our sample deity
MoSat, the source material is PCGen's my_deity.lst
file so our SOURCEPAGE
tag will take the form of SOURCEPAGE:my_deity.lst
.
As for Thalia, our invented-from-thin-air deity, there is no source page,
but many functions and filters in PCGen use it, so it is good to include it. Therefore, we will include
the tag with an n/a
for the source page.
Example:
MoSaT
<tab> . . .
<tab>SOURCEPAGE:my_deity.lst
Thalia
<tab> . . .
<tab>SOURCEPAGE:n/a
My deity entries now look like this (all on a single line and the tags in the order that I feel makes most sense.):
MoSaT<tab>
TITLE:The CONTENTed One<tab>
PANTHEON:BoD<tab>
ALIGN:CG<tab>
PREALIGN:NG,CG,CN<tab>
DOMAINS:Chaos|PREALIGN:CG,CN<tab>
DOMAINS:Knowledge,Animal<tab>
DEITWEAP:Tiger Claws<tab>
APPEARANCE:He is usually seen as a small simian
stooped over a wireless keyboard typing madly.<tab>
WORSHIPPERS:LST Monkeys<tab>
SOURCEPAGE:my_deity.lst
Thalia<tab>
TITLE:The Flourishing One<tab>
PANTHEON:Olympia<tab>
ALIGN:NG<tab>
PREALIGN:LG,NG,TN,CG<tab>
DOMAINS:Good|PREALIGN:LG,NG,CG<tab>
DOMAINS:Knowledge,Poetry<tab>
DEITWEAP:Shepherds Crook<tab>
APPEARANCE:She is sometimes seen with a crown of ivy
and a shepherds crook.<tab>
WORSHIPPERS:Comedians and Pastoral Poets
And that's everything you need to add new deities to your campaign.
Maredudd