By Eric C Smith (Maredudd) and Andrew McDougall (Tir Gwaith)
File(s) Covered: *_domains.lst
LST Standard : 6.0.0
Tags used:
CSKILL
,
BONUS:CASTERLEVEL
,
PREALIGN
,
SPELLS
,
VFEAT
,
PREALIGN
This is a continuation of the material presented in LST File Class #15, Domain 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 (R/SRD) 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)
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 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
PREALIGN
The
PRExxx
tags are global tags that apply
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
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