By Eric C Smith (Maredudd) and Andrew McDougall (Tir Gwaith)
File(s) Covered: *_domains.lst
Tags used:
CSKILL
,
BONUS:CASTERLEVEL
,
PRExxx
,
SPELLS
,
VFEAT
This is a continuation of the material presented in Lesson 15, Domains, The Basics. In this lesson I will go over a handful of global tags needed to implement the domain powers as described in our sample domains. As with the previous lesson on domains, I will be using several domains as examples. Four drawn from the Revised Standard Reference Document (RSRD) and one I have made up for this class in order to more completely demonstrate a few specific global tags. The domains we'll look from the RSRD are Animal, Law, Trickery and War, as well as the new domain of 'Poetry'. Our new domain is presented below in the standard RSRD format so you can follow along.
Granted Powers: You add all Perform skills to your cleric class skills and automatically
gain the ability to Scribe Scrolls at 3rd level. You cast mind-affecting spells at +1
caster level, and are graced by Great Intelligence every four levels to a maximum of
20th level. If you have a charisma score of 12 or greater you may use Ventriloquism
once a day as a spell-like ability.
Poetry Domain Spells
NOTE: The Poetry Domain is a little overdone, but I wanted to demonstrate a number of global tags. I would not recommend using the Poetry Domain in your campaign, unless of course you believe the pen is mightier than the sword . . .
Before we begin we must first identify which 'Granted Powers'
need to be implemented. Our source for these powers is the text
following the DESC
tag. Looking at the Poetry domain listed
above, we get the following powers:
Add all Perform skills to your cleric class skills.
You may automatically Scribe Scrolls at 3rd level.
You cast mind-affecting spells at +1 caster level.
Graced by Great Intelligence every four levels to a maximum of 20th level.
May use Ventriloquism once a day as a spell-like ability (If you have a charisma score of 12 or greater)
Finally, 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 domain 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. domain, feat, weapon, etc.,
I have included the name as EMPHASISED text, except for
when the object is part of a <code>
example or in the case of
the class 'Cleric', which is used throughout this article.
Without further adieu, lets jump right into the lesson.
CSKILL
This tag is used to add skills to the cleric's list of class skills. The new class skills may include a single skill or may be a pipe (|) delimited list of skills to be added. An example of this is the Trickery domain which adds the three skills of Bluff, Disguise, and Hide to the Cleric's list of class skills. The first example below gives the form of this tag.
The skills being added may also be designated by TYPE
,
taking the form of TYPE.<skill type>
. Our new domain
is a good example of this as the domain adds all Perform type
skills to the Cleric's class skills list. See the example below
to see the tag
in action.
Example:
Trickery
<tab> . . . <tab> CSKILL:Bluff|Disguise|Hide
Poetry
<tab> . . . <tab> CSKILL:TYPE.Perform
BONUS:CASTERLEVEL
This tag grants a bonus to the character's caster level. This bonus
is dependent upon specific qualifying parameters, which are identified
within the tag itself. The tag only requires two arguments, the
qualifying tag and the number of levels the caster level
is increased, with
a third optional argument in the form of a PRExxx
tag.
The general form this tag and its argument take as as
follows:
BONUS:CASTERLEVEL|<qualifying tag>|<level
bonus>|PRExxx
There are several different types of qualifying tags, including
the class name, a spell DESCRIPTOR
, a DOMAIN
,
a RACE
, a SCHOOL
, a SPELL
,
a SUBSCHOOL
,
and a TYPE
. Each of these tags, except for the class name,
take the form of <TAG>.text
, with the text being
appropriate for the tag, i.e. RACE.Elf%
, SCHOOL.Abjuration
, TYPE.Arcane
,
etc. The class name is a simple text entry giving the name
of the appropriate class, i.e. Cleric
. Looking at the
Domain of Law in the RSRD, the rsrd_domains.lst file, we find,
that a divine spell caster with this domain receives a
bonus when casting lawful based spells. The specific spell
descriptor of 'Lawful' is used in this tag taking the form: DESCRIPTOR.Lawful
.
Examining the list of granted powers for the Domain of Poetry
above,
we see a divine spell caster with this domain receives a bonus
when casting 'Mind-Affecting' spells. The qualifying
tag for the bonus takes the following form: DESCRIPTOR.Mind-Affecting
.
The second argument in our tag is the level bonus. This is a number, variable, or formula that represent the number of levels that is added to the divine casters level for the purposes of determining the effects, DC, etc. In both the domain of Law and the domain of Poetry, the bonus level is '1'.
Finally, this tag can take PRExxx
tags, with the most
common tag being the PRERULE
tag which checks the state
of rule as set in PCGen's 'House Rule' preferences. The rule
must be defined in the rules.lst file in the 'system/gameModes'
folder within
PCGen. The particular rule we are interested in for the BONUS:CASTERLEVEL
tag
applies Casterlevel Bonuses from Domains to all Spells and is
referenced by the VAR:SYS_DOMAIN
tag,
as defined in the rules.lst file.
Taking all of this together, the BONUS:CASTERLEVEL
tag
for our two sample domains take the form shown below.
Example:
Law
<tab> . . . <tab> BONUS:CASTERLEVEL|DESCRIPTOR.Lawful|1|PRERULE:SYS_DOMAIN
Poetry
<tab> . . . <tab> BONUS:CASTERLEVEL|DESCRIPTOR.Mind-Affecting|1|PRERULE:SYS_DOMAIN
PRExxx
This tag is a global tag that applies specific prerequisites to the
character before granting the selected domain and its granted
powers and spells. You may include as many of these tags as you
like and
each of them will be applied to the domain as a whole. If the
character does not meet ALL PRExxx
tags, the domain cannot
be selected. Unfortunately, there are too many PRExxx
tags
to go over in this class so I will restrict my coverage to the
most likely tag.
That is the PREALIGN
tag.
The PREALIGN
tag applies an alignment requirement to
the cleric. The form this tag takes is:
PREALIGN:<alignment list>
.
The alignment list is a comma-delimited list of
alignment abbreviations as follows:
Lawful Good=NG
,
Lawful Neutral=LN
,
Lawful Evil=LE
, Neutral Good=NG
, True Neutral=TN
,
Neutral Evil=NE
, Chaotic Good=CG
, Chaotic
Neutral=CN
, and Chaotic Evil=CE
. An additional
identifier is Deity
, representing the alignment of the
characters deity.
Note: The alignments have been assigned specific numbers, which can also be used. The numbers are: 0=LG, 1=LN, 2=LE, 3=NG, 4=TN, 5=NE, 6=CG, 7=CN, 8=CE, and 10=Deities alignment. These values can be used instead of the abbreviations
An example of this usage can be seen below for the domain of Law.
As there are no restrictions to be applied, either for alignment or
by any other cr criteria, for the domain of Poetry,
we will not be including a PRExxx
tag in our Poetry domain
line.
As a final note, this tag provides prerequisites that are separate
from the prerequisites used in conjunction with the DOMAINS
tag.
Example:
Law
<tab> . . . <tab> PREALIGN:LG,LN,LE
SPELLS
This tag grants the cleric spell-like abilities. This tag has a number of arguments that we will explain below but first, the general form of this tag and its many arguments are as follows:
SPELLS:<spellbook>|TIMES=<number or formula>|CASTERLEVEL=<number
of formula>|<spell
name>,<spell DC>|<PRExxx tag>
The first argument in the SPELLS
tag is the name of the
spellbook that the spell-like ability will be displayed in
within PCGen and on the character sheet. This may include any
name you can imagine, though the several examples of this
tag in the RSRD use either 'Innate' or the name of the domain granting the
ability
as can be seen in the Animal domain example given
below. It is very important though that the spellbook
name NOT be the same as any Class names, i.e. 'Cleric', 'Sorcerer',
etc. Using an existing class name will cause PCGen to throw
an exception and it will not
function properly. For our purposes, the spell book entered
is the domain name and takes the form of <domain
name> Domain
.
For the poetry domain we would enter Poetry Domain
.
The TIMES
tag is an optional tag that identifies the number
of times a day the spell-like ability may be used. If it's
not included in the domain line, PCGen will default to 1 time
per day. You may enter a specific value, a variable, or a
formula in this tag. It is important
to note that within the domain file the SPELLS
tag is not associated
with any specific class, therefore, the variable CL
will not work.
(For
more information about formulas within PCGen, see the Math
Operators and Formulas section in the PCGen Documentation.) A special
value that may be entered is the value '-1', which will cause
an output on the character sheet of 'At Will'. Both the Animal
and Poetry domains grant spell-like abilities that are usable
once per day so both domain entries will include the TIMES=1
tag.
CASTERLEVEL
is an optional tag that sets the level at which
the spell-like ability is cast. As with the TIMES
tag,
you may enter any value, variable, or formula as desired.
If it is not included, PCGen will default to 1. Only
one CASTERLEVEL
tag
is allowed in each SPELLS
tag entry. For the Animal and Poetry domains,
we base the caster level on the total level of the character,
including the PC, NPC, and Monster levels but not
including any level adjustments, so we will be using
the TL
variable
as the basis for the caster level. Unfortunately, there may
be circumstances where the total level is reduced to zero or
below, i.e. with the application of a template that applies negative
levels. In this case, we still want the spell-like ability
to function, even if at a minimum level. Therefore, we will use
the max()
formula tag. The entry for the casterlevel for both
of our example domains becomes CASTERLEVEL=max(TL,1)
, setting
the caster level of the spell-like ability to the character's
total level with a minimum level of 1.
Besides the spell book, the <spell name>
is the only
other mandatory argument for the SPELLS
tag as it provides,
as the tag implies, the name of the spell being granted
as a spell-like ability. This spell must exist in the
loaded datasets and must appear exactly as it does in
the first position on the spell line in the spell file.
The optional
<spell DC>
value may be a number, variable, or formula.
I will establish the DC for the Poetry domain as 12+WIS
, meaning
a base score of twelve (12) plus the wisdom modifier. The RSRD
gives the DC value for the Animal domain as 11+WIS
, being a
base score of eleven (11) plus the wisdom modifier.
The last argument to discuss is the global PRExxx
tag.
These are used to set prerequisites for the spell-like ability
such as alignment requirements or minimum stat requirements.
If a SPELLS
tag requires multiple PRExxx
statements
they are included as a pipe (|) delimited list at the end of the SPELLS
tag.
Some of the PRExxx
statements have pipe (|) delimiting
in them, in which case you simply put that PRExxx
statement
in a separate SPELLS
tag by itself. The Speak with
Animals ability granted by the Animal domain
does not carry a prerequisite so you will not find a PRExxx
tag
attached to the SPELLS
tag.
The Poetry domain, on the other hand, does require
a minimum wisdom before the Ventriloquism ability
is granted. This prerequisite is coded using the PRESTAT
tag
which takes two arguments; 1) the number of stats which must
qualify, one in our case, and 2) the
stat and its value, identified by the stat abbreviation defined
in the statsandchecks.lst file and a numeric value representing
the minimum stat value. Our PRESTAT
tag
takes this form: PRESTAT:1,WIS=12
Ok, so we've gone over all the arguments allowed in the SPELLS
tag.
The only thing left to do is put them al together so we can see
the final tag, and this we have done below.
Example:
Animal
<tab> . . . <tab> SPELLS:Animal
Domain|TIMES=1|CASTERLEVEL=max(TL,1)|
Speak with Animals,11+WIS
Poetry
<tab> . . . <tab> SPELLS:Poetry
Domain|TIMES=1|CASTERLEVEL=max(TL,1)|
Ventriloquism,12+WIS|PRESTAT:1,WIS=12
VFEAT
The VFEAT
tag grants a feat, or a list of feats, to a character,
even if the character would not normally meet the requirements
for that feat. The tag takes a pipe-delimited list and
can be as long as desired, but must contain at least one feat.
The feats included in the feat list must exist and you should
NOT use the feats OUPUTNAME
,
if one exists for the feat you are granting. Also keep in mind
that some feats have a CHOOSE
built
into them, such as Weapon Focus, while most don't. Weapon
Focus, when applied, calls a chooser to allow the player to
choose which weapon the focus will apply to. Let us assume
the character selects the
Longsword, which will be displayed as Weapon
Focus(Longsword). This causes some confusion when it comes
to listing a feat with a parenthetical element, i.e. Armor
Proficiency (Heavy),
which is a unique feat with no CHOOSE
command, and the afore
mentioned
Weapon Focus(Longsword). PCGen differentiates between
these two cases by the inclusion, or exclusion, of a space between
the 'open' parentheses
and the preceding alpha-character. For a feat with a built in CHOOSE
command, there is NO intervening space while a unique feat with
a parenthetical element has an intervening space.
As stated before, the VFEAT
tag applies a feat irrespective
of the prerequisites for that feat, but the VFEAT
tag also allows
the application of new prerequisites through the use of the PRExxx
tag.
The new prerequisite will be applied to all feats listed in
the VFEAT
tag.
This could cause a problem if you wanted to apply two feats,
each with their own prerequisites, but fortunately, not only can we include
as many feats
in the VFEAT
tag as we need, we can also include as many VFEAT
tags
in the domain line as we need, each with its own PRExxx
tag.
If you browse through the PRExxx
section of the global tag documentation,
you will find many tags that can be used when applying virtual
feats, but I will be going over only one of them here. That is the PRELEVEL
tag.
The PRELEVEL
tag establishes a prerequisite for a character
to have a minimum number of levels. Its form is simple, having as a single
argument the minimum level required. The tag takes the following form: PRELEVEL:<minimum
level>
With all of this in mind, the form the VFEAT tag takes in this file, with our selected PRExxx tag, is as follows:
VFEAT:<feat list>|PRELEVEL:<minimum level>
For the Poetry domain, we are applying two feats:
the Scribe Scolls feat, which is granted a third
level, and
the Great
Intelligence feat, which normally requires that the character
have at least 21 levels.
Additionally, we will apply the Great Intelligence feat
several times, specifically when the character
is at 4th, 8th, 12th, 16th, and 20th levels.
Fortunately, the Great
Intelligence feat
is stackable so our application of the feat five
times as the character advances from 1st to 20th
level can be accommodated by simply including
five VFEAT
tags, each with an appropriate PRELEVEL
tag,
five time. See our example below for the final VFEAT
tag
entries.
Example:
Poetry
<tab> . . . <tab> VFEAT:Scribe Scrolls|PRELEVEL:3
<tab> VFEAT:Great Intelligence|PRELEVEL:4
<tab> VFEAT:Great Intelligence|PRELEVEL:8
<tab> VFEAT:Great Intelligence|PRELEVEL:12
<tab> VFEAT:Great Intelligence|PRELEVEL:16
<tab> VFEAT:Greater Intelligence|PRELEVEL:20
<tab>
My domain entry for the Domain of Poetry, adding the tags discussed above to those discussed in lesson 14, now looks like this (all on a single line.):
Poetry
<tab>CSKILL:TYPE.Perform
<tab>BONUS:CASTERLEVEL|DESCRIPTOR.Mind-Affecting|1|PRERULE:SYS_DOMAIN<
tab>SPELLS:Poetry Domain|TIMES=1|CASTERLEVEL=max(TL,1)|Ventriloquism,12+WIS|PRESTAT:1,WIS=12
<tab>SOURCEPAGE:SpellListI.rtf
<tab>VFEAT:Scribe Scrolls|PRELEVEL:3
<tab>VFEAT:Great Intelligence|PRELEVEL:4
<tab>VFEAT:Great Intelligence|PRELEVEL:8
<tab>VFEAT:Great Intelligence|PRELEVEL:12
<tab>VFEAT:Great Intelligence|PRELEVEL:16
<tab>VFEAT:Great Intelligence|PRELEVEL:20
<tab>
DESC:You are graced
by Great Intelligence and gain the ability
to Scribe
Scrolls at 3rd level. You may use Ventriloquism once a
day as a
spell-like ability and add all Perform skills
to your cleric
class skills. You cast mind-affectng spells at +1 caster
level.
<tab>SPELLLEVEL:DOMAIN|
Poetry=1|Hypnotism|
Poetry=2|Suggestion|
Poetry=3|Geas (Lesser)|
Poetry=4|Modify Memory|
Poetry=5|Song of Discord|
Poetry=6|Irresistible Dance|
Poetry=7|Hold Person (Mass)|
Poetry=8|Charm Monster (Mass)|
Poetry=9|Hold Monster (Mass)
And that's everything you need to know to add new, full feature, domains to your campaign.
Maredudd