7
\$\begingroup\$

I'm trying to figure out how to alter the code in PCGen to allow me to add more cleric domains and deities.

At the moment the only available domain is the Life Domain. Does anyone out there have any experience adding other cleric domains? Any help would be greatly appreciated.

\$\endgroup\$
  • \$\begingroup\$ Welcome to RPG.SE! Take the tour if you haven't already, and check out the help center for more guidance. \$\endgroup\$ – V2Blast Jul 3 '19 at 19:30
  • 2
    \$\begingroup\$ In case nobody knows the answer, their discord channel might be able to help you out: discord.gg/yDSzXJg. If they do manage to help you there, make sure to come back to post an answer on your question for the rest of us! :) \$\endgroup\$ – Theik Jul 16 '19 at 12:27
5
\$\begingroup\$

Non-SRD content needs to be added manually

I can't really prove this as a lot of the information found on the FAQ and pcgen website is outdated. However, it is clear that they only provide SRD content for 5e. A few examples of this idea from their FAQ/Page:

From The FAQ:

What systems does PCGen support today?

(...) Due to license issues, the program can support 4th edition and the upcoming 5th edition (known as D&D Next) but we cannot supply any pre-made books. (...)

Clearly the fact that they are still referring to the future release of 5e this is very old but I would guess the situation of only being allowed to release SRD content is unlikely to have changed. You can also check their page on Publishers and Source Information but again, the information is probably quite outdated (5e is never mentioned).

Regardless, your best bet to include the source materials that you want is probably to add them yourself:

Adding content manually

Adding content to pcgen can be a lot of work. I suggest you take a look at the numerous tutorials and videos you can find online and even their discord channel1 for advanced help on how to to this. This is a complex enough matter that I think a full explanation of all the features of PCGen needed to master adding is a bit beyond the scope of what I can provide here.

I did fiddle with some Pathfinder content before (minor fixes to abilities mostly) so I thought I'd give this adding domains for 5e thing a try. Here is what I have learned (mostly from online searches and experimenting):

First, in order to not mess with the base SRD content, you probably want to create a separate folder for your content which we will call "homebrew". In your pcgen installation folder, you should be able to find a "data" folder that includes a "5e" folder. I'm using windows so this is what the path is for me:

(...)\PCGen\6.07.08\data\5e

You can find a "wizards_of_the_coast" folder which contains all the information from the SRD (hint: use what you find here to both understand the syntax of things and/or copy content to be changed). We are going to ignore that for now and create our own "homebrew\my_homebrew" folders:

(...)\PCGen\6.07.08\data\5e\homebrew\my_homebrew

Inside this, we create a file called "_my_campaign.pcc". Files with the .pcc extension are what pcgen uses to know what content to load. This is the main file that is going to list the files with content that you will want to load. The contents of this file should be (note that anything that comes after a # is a comment, text that is ignored by the program and that I am using to explain some things):

CAMPAIGN:My 5e Homebrew # Or other names if you want
KEY:5e - Homebrew
RANK: 9 
BOOKTYPE:Homebrew
TYPE:Homebrew.MyCampaign # Defines the structure that will appear when selecting sources in pcgen
GAMEMODE:5e # This has to be 5e so pcgen knows this is 5e content
STATUS:BETA
SOURCELONG:My Homebrew Campaign
SOURCESHORT:MHC

ABILITY:homebrew_abilities_class.lst # This line loads the abilities file that includes the test domain in my case

Next, we create the file with the actual content that you want to add in the same folder. Because the life domain that is already included in the SRD content can be found in a "srd5_abilities_class.lst" file, for organizational purposes it is probably a good idea to keep the names similar so I chose "homebrew_abilities_class.lst" (.lst files contain the actual classes/abilities, etc to be loaded). The contents of this file are:

# Ability Name  Unique Key                  SORTKEY         Category of Ability Type                                Var. Must Be Lower  Define          Stackable?  Multiple?   Choose      Bonus Ability Pool      Combat bonus                Stat bonus      Modify VAR              Cost
# Divine Domains
Test Domain                 KEY:Divine Domain ~ Test Domain                 CATEGORY:Special Ability    TYPE:Cleric Class Feature.Class Feature.Divine Domain                                                                                                                           DESC:The Test Domain is used for testing PCGen.                                                                                             ABILITY:Special Ability|AUTOMATIC|Test Domain ~ Bonus Proficiency|PREVARGTEQ:ClericLVL,1    ABILITY:Special Ability|AUTOMATIC|Test Domain ~ Disciple of Testing|PREVARGTEQ:ClericLVL,1  ABILITY:Special Ability|AUTOMATIC|Channel Divinity ~ Preserve Life|PREVARGTEQ:ClericLVL,2   ABILITY:Special Ability|AUTOMATIC|Test Domain ~ Blessed Healer|PREVARGTEQ:ClericLVL,6   ABILITY:Special Ability|AUTOMATIC|Life Domain ~ Divine Strike|PREVARGTEQ:ClericLVL,8    ABILITY:Special Ability|AUTOMATIC|Life Domain ~ Supreme Healing|PREVARGTEQ:ClericLVL,17                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     SOURCEPAGE:p.                                                                                                   SPELLKNOWN:CLASS|Cleric=1|Bless,Cure Wounds|PRECLASS:1,Cleric=1 SPELLKNOWN:CLASS|Cleric=2|Lesser Restoration,Spiritual Weapon|PRECLASS:1,Cleric=3   SPELLKNOWN:CLASS|Cleric=3|Beacon of Hope,Revivify|PRECLASS:1,Cleric=5   SPELLKNOWN:CLASS|Cleric=4|Death Ward,Guardian of Faith|PRECLASS:1,Cleric=7  SPELLKNOWN:CLASS|Cleric=5|Mass Cure Wounds,Raise Dead|PRECLASS:1,Cleric=9   SPELLLEVEL:CLASS|Cleric=1|Bless,Cure Wounds|PRECLASS:1,Cleric=1 SPELLLEVEL:CLASS|Cleric=2|Lesser Restoration,Spiritual Weapon|PRECLASS:1,Cleric=3   SPELLLEVEL:CLASS|Cleric=3|Beacon of Hope,Revivify|PRECLASS:1,Cleric=5   SPELLLEVEL:CLASS|Cleric=4|Death Ward,Guardian of Faith|PRECLASS:1,Cleric=7  SPELLLEVEL:CLASS|Cleric=5|Mass Cure Wounds,Raise Dead|PRECLASS:1,Cleric=9

# Test Domain
Bonus Proficiency               KEY:Test Domain ~ Bonus Proficiency     SORTKEY:Class   CATEGORY:Special Ability    TYPE:Cleric Class Feature.Class Feature.SpecialQuality                                                                                                                      DESC:When you choose this domain at 1st level, you gain proficiency with heavy armor.                                                                                                                                                                                                                                                                                                                                                                                                                                                                           ABILITY:Internal|AUTOMATIC|TYPE=ArmorProfHeavy                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              SOURCEPAGE:p.
Disciple of Testing             KEY:Test Domain ~ Disciple of Testing       SORTKEY:Class   CATEGORY:Special Ability    TYPE:Cleric Class Feature.Class Feature.SpecialQuality                                                                                                                      DESC:Also starting at 1st level, you can check that text actually appears on the character sheet.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       SOURCEPAGE:p.
Blessed Healer              KEY:Test Domain ~ Blessed Healer        SORTKEY:Class   CATEGORY:Special Ability    TYPE:Cleric Class Feature.Class Feature.SpecialQuality                                                                                                                      DESC:Beginning at 6th level, the healing spells you cast on others heal you as well. When you cast a spell of 1st level or higher that restores hit points to a creature other than you, you regain hit points equal to 2 + the spell's level.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  SOURCEPAGE:p.

Now as you can probably all I did was change some ability names and descriptions. A couple of note on what I learned in the process of fiddling with this:

  • The first line's comment (copied from the SRD content) actually helps make sense of what some of the things are, namely the Unique Key by which an ability is referenced.
  • The Domain itself (line starting with Test Domain) contains references to all it provides, including the levels at which other features are granted, domain spells, etc. All you need to do is follow the existing syntax and modify things as needed.
  • Abilities reference other abilities in order to actually mechanically affect the character (for example, the bonus proficiencies calls on the ArmorProfHeavy). Other abilities do nothing but display a description (such as Blessed Healer and Disciple of Testing)
  • By loading the SRD content along with your homebrew you can reference the SRD from your content, so you don't have to include everything again (you should probably add a source dependency somewhere to stop you from loading the homebrew without the SRD, I did not find out how to do this)

After you have saved everything and have both these files:

(...)\PCGen\6.07.08\data\5e\homebrew\my_homebrew\_my_campaign.pcc
(...)\PCGen\6.07.08\data\5e\homebrew\my_homebrew\homebrew_abilities_class.lst

You need to restart pcgen for it to load these. If everything works as expected, when loading advanced 5e sources you should now see the following, which allows you to include your homebrew along with the SRD content:

source selection image

Then, when creating a cleric character, the Test Domain will show up as an option and add the associated abilities to the character:

domain selection

The domain will now also add all the abilities it references, domain spells, etc (as set in the .lst file)

Conclusion

I have to say, this is a lot of work. One of the biggest issues I found is scrolling around to see all the content in the .lst files while trying to understand how they work. If one is to make a serious attempt at adding a large amount of content to pcgen I strongly recommend getting some sort of editor program appropriate to .lst files, which you can probably ask about in the discord group (at least something better than the notepad++ I used for this).

I know this isn't all that much but do I hope it at least helps you go in the right direction or at least gives you an idea on the kind of work involved in adding things to pcgen, and whether you find it worth it to invest some time into it (so you have an idea, between searching and experimenting, this probably took me around 4 hours to accomplish, I imagine it'd be faster moving forward, half of it was spent on figuring out the .pcc file). Good luck!


1.Taken from Theik's comment

| improve this answer | |
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.