# PCC files

The PCGen Campaign Configuration files are where you specify what you want included in your campaign. It is the PCGen team’s recommended practice that your pcc files be located in the same directory as your list files with the notable exception being if you have many files spread between multiple directories. In this situation you should locate a “master” pcc file in the main directory.

This page is divided into two sections:

Campaign File Building 101

This section covers a few basic points to keep in mind when building your own PCC file.

PCC File Tag List

This section covers the syntax and function provided by the tags used in the PCGen Campaign (PCC) files.

## Campaign File Building 101

#### Notes on File Loading Order

LST file loading order is enforced by PCGen’s loading system so it is important to keep the following issues in mind when building a custom PCC file:

- PCC files will be loaded in the order of their appearance.
- All LST files (e.g. Ability, Deity, Equipment, etc., but excluding embedded PCC files.) will be loaded in the order listed in the PCC file with the exception that Ability Category files will be loaded before Ability files.
- Embedded PCC files, i.e. those contained within other PCC files, will be loaded after the files contained in the embedding PCC file. As an example:
  - Given two PCC files, a.pcc and b.pcc , each containing an embedded PCC file aa.pcc and ba.pcc respectively, the order of processing is as follows:
    - All LST files contained in a.pcc are loaded with any Ability Category files being loaded before Ability files.
    - All LST files contained in aa.pcc are loaded with any Ability Category files being loaded before Ability files.
    - All LST files contained in b.pcc are loaded with any Ability Category files being loaded before Ability files.
    - All LST files contained in ba.pcc are loaded with any Ability Category files being loaded before Ability files.

#### Global Bonuses in PCC Files

Global `BONUS` tags can be included within a PCC file and will apply the relevant bonus to every character created while that PCC file is loaded, but it should be noted that this is the case only if the PCC is loaded directly. Bonuses contained within embedded PCC files will NOT be applied.

Note: You cannot use a colon (:) in the PCC file anywhere other than immediately after LST tags, e.g. `CAMPAIGN:` , etc. Doing so will cause PCGen to report errors and not load correctly.

Additional information on building your own Campaign files can be found in LST File Classes Lesson #1: The PCC File: Campaign Information and Lesson #2: The PCC File: Basic File Types .

## PCC File Tag List

This section is divided into three sub-sections:

### Data Set and Campaign Information Tags

These tags provide information about the dataset.

The first two tags in the PCC file should be `CAMPAIGN` and `GAMEMODE` . These are presented below out of alphabetical order to emphasize that they are required tags which must be the first two lines in a PCC file.

- CAMPAIGN
- GAMEMODE
- BOOKTYPE
- COPYRIGHT
- DESC
- GENRE
- HELP
- INFOTEXT
- ISMATURE
- ISOGL
- ISLICENSED
- LICENSE
- PRECAMPAIGN
- PUBNAMELONG
- PUBNAMESHORT
- PUBNAMEWEB
- RANK
- SETTING
- SHOWINMENU
- SOURCELONG
- SOURCESHORT
- SOURCEWEB
- SOURCEDATE
- STATUS
- TYPE
- URL

### Main Body Tags

Loads the specific .lst files which make up the dataset.

The function of all main body tags is to tell PCGen to load a specific file as part of that campaign file. There are three ways of doing this, each dependant on where the file to be loaded can be found relative to the PCC file.

#### Direct Loading

The first and most common is by a relative file path assuming a starting point in the folder where the PCC file is stored. If the file to be loaded and the PCC file that calls it are in the same directory then all that is needed is the name of the file.

Examples:

`CLASS:fhbclasses.lst`

Loads the file fhbclasses.lst which is in the same directory as the .pcc file calling it.

#### Absolute Loading

The second method is a special absolute path which is useful if you need to call a specific file from a known location in the data or vendor folder.

- Using the ‘at’ symbol (@) and a file path will direct PCGen to look for the file in the DATA folder using the path specified.
- Using the ampersand (&) and a file path will direct PCGen to look for the file in the VENDOR folder using the path specified.
- Using the asterisk (*) and a file path will direct PCGen to first attempt to locate the file in the VENDOR folder and then will look in the DATE folder.

Examples:

`SPELL:@/d20ogl/srd/srdspells.lst`

Loads the file from a path relative to the data folder.

`CLASS:&/complete_monkey/complete_monkey_classes.lst`

Loads the file from a path relative to the vendor data folder.

`EQUIPMENT:*/d20ogl/srd35/basics/rsrd_equip.lst`

Loads the file from a path relative to the vendor data folder and if that does not exist, uses a path relative to the data folder.

#### Internet Loading

The third method is by loading data files over the internet. To do this you must set PCGen’s Preferences to allow this. You can then create a PCC file which uses a web address instead of a file path to load source files.

Examples:

`CLASS:http://www.foogames.com/fhandbook/fhbclasses.lst`

Loads the source file from a web site.

NOTE: Do not use backslashes (\) for directory separators in file paths, use only forward slashes (/). backslashes work correctly on Windows systems but cause problems on Unix flavored systems such as Linux and Max OS X.

#### Multiple Files Per Object

The tags in this section can, and it is recommended for equipment, have multiple lines. The names of the list files in the example column are also only suggestions. To include the same type of files from the same directory on the same line as a pipe-delimited (|) list of files, e.g. `fhbarmorshields.lst|fhbequip|etc` . Sometimes, not all of these tags are required by a source material. If a tag is not required, it cannot be left blank, it must be commented out or deleted entirely. These tags only tell PCGen where to go to get the information it needs, it points it to the right spot. Each list file will be fully explained below, separated by the list file name, with a full list of the tags that can be used in each one.

#### Prerequisites on Main Body Tags

The `PRECAMPAIGN` tag can be appended to the end of any main body tag to either include or exclude the loading of LST files, either in whole or in part.

Examples:

`FEAT:source_feats_apg.lst|!PRECAMPAIGN:1,APG`

The source_feats_apg.lst file will be loaded only if the APG Campaign file is not loaded.

`FEAT:source_feats_um.lst|!PRECAMPAIGN:1,UM`

The source_feats_um.lst file will be loaded only if the UM Campaign file is not loaded.

`FEAT:source_feats_apg.lst|(INCLUDE:foo|bar)|PRECAMPAIGN:1,APG`

The source_feats_apg.lst file will be loaded only if the APG Campaign file is not loaded.

`EQUIPMENT:../ultimate_combat/pfuc_equip_armor.lst|!PRECAMPAIGN:1,INCLUDES=Paizo - Pathfinder Roleplaying Game Ultimate Combat`

The ../ultimate_combat/pfuc_equip_armor.lst file will be loaded only if the loaded campaign files includes the Paizo - Pathfinder Roleplaying Game Ultimate Combat campaign file.

- ABILITYPCC
- ABILITYCATEGORY
- ARMORPROF
- BIOSET
- CLASS
- COMPANIONMOD
- COVER
- DEITY
- DOMAIN
- EQUIPMENT
- EQUIPMOD
- KIT
- LANGUAGE
- LOGO
- PCC
- RACE
- SKILL
- SHIELDPROF
- SPELL
- TEMPLATE
- WEAPONPROF

### Other .pcc file tags

The tags below do not provide information about the dataset nor do they load files by themselves but instead provide additional functionality.

- LSTEXCLUDE
- ALLOWDUPES
- INCLUDE
- EXCLUDE
- FORWARDREF
- HIDETYPE
- OPTION
- REQSKILL

Documentation built with Hugo using the Material theme.