# PCC files

These are the PCGen Campaign Configuration files. Here you can specify what you want included in this campaign. Note - you cannot anywhere, other than immediately after the tag, use a colon (:) in the CAMPAIGN tag. Doing so will cause PCGen to report errors and not load correctly. It is recommended practice that your pcc files be located in the same directory as your list files, the notable exception being if you have multiple directories, with multiple list files, then you locate a "master" pcc file in the main directory. This will be explained below in the TAGs section.

## Source and Header Information Tags

Tag Name: CAMPAIGN:x

Variables Used (x): Text (Name of source)

What it does:

This MUST be the first line in the file. The standard format used is Company Short Name (Foo) - Campaign Name - Name of material

Example:

`CAMPAIGN:FGI - FooB Core Rulebook I - FHB`

WARNING: The use of the ampersand (&) sign will cause significant problems with PCGen, so recommended usage is to replace with the word "and" or the letter "n" to avoid this.

Tag Name: COPYRIGHT:x

Variables Used (x):Text (Copyright information)

What it does:

Used to display copyright information when a source is single clicked on, in the source selection page, upon program start.

Sources included with PCGen should have the copyright information from section 15 of the Open Game License included in the source reproduced verbatim.

An additional entry should be made listing all who worked on the PCGen conversion in the format shown below.

Example:

`COPYRIGHT:PCGen dataset conversion for "X Book" Copyright XXXX-YYYY, PCgen Data Team including, but not limited to, "Original Author", "Any secondary authors".`

This is the Sec. 15 that should be added to all sources going into PCGen. X Book should be the name of the source, XXXX should be the year the dataset was created and YYYY is the current year. Please list all contributors to the dataset.

`COPYRIGHT:Foo Reference Document &copy 2003 Foo Games, Inc.`

Note(s):`&copy` - This code coverts to a copyright symbol (©) when put in the text of a COPYRIGHT tag.

Tag Name: INFOTEXT:x

Variables Used (x):Text (Information)

What it does:

Provides Text information that is displayed in the Information Window on the Source Tab when the source material is selected.

Example:

`INFOTEXT:This pcc loads all the Foo source materials minus the FooWorld races`

Deprecated 5.4

Tag Name: ISD20:x

Tag Name: ISOGL:x

Variables Used (x):Boolean (YES or NO)

What it does:

Used to indicate if sources are OGL compliant. If `ISOGL:YES` then its COPYRIGHT info gets inserted into the OGL license. This tag is optional.

Examples:

`ISOGL:YES`

`ISOGL:NO`

*** New 5.3.3

Tag Name: ISLICENSED:x

Variables Used (x):Boolean (YES or NO)

What it does:

Used to indicate if sources have a special license, and activated the LICENSE tag, which will display information about the license to the end-user.

Examples:

`ISLICENSED:YES`

`ISLICENSED:NO`

*** Deprecated - will be gone soon. Use GAMEMODE ***

Tag Name: GAME:x

Tag Name: GAMEMODE:x

Variables Used (x):Text (Name of GameMode)

What it does:

This MUST be 2nd in the file. This tells PCGen what genre this is in PCGen and must be entered exactly as shown.

Examples:

`GAMEMODE:3e`

Tag Name: GENRE:x

Variables Used (x):Text (Genre)

What it does:

This tells PCGen what genre this is.

Eventually This will be used to filter sources.

Example:

`GENRE:Fantasy`

*** New 5.3.3

Tag Name: LICENSED:x

Variables Used (x):Text or `FILE`

What it does:

Displays special license information in a pop-up at time of source load. Requires a `ISLICENSED:YES` tag to be active.

Examples:

`LICENSED:This set included with special permission from Foo Games`

Would display the text in a nice box with other licenses.

`FILE=foolicense.html`

Doing a `FILE=` allows PCC to point to an HTML formatted file, which will display in a box of its own.

Tag Name: RANK:x

Variables Used (x): Number (Rank)

What it does:

Sets the priority in loading .pcc files. 1 is the highest priority and 9 is the lowest priority for loading .pcc files.

When PCGen encounters certain objects with duplicate names from different sources (such as Classes) the object in the source with the highest priority rank will be loaded while the duplicate will generate an error message (and will not be loaded).

Example:

`RANK:1`

This pcc file is given first priority when loading.

Officially sanctioned use of ranks:

RANK:1 - Core rules

RANK:2 - Campaign settings

RANK:3 - Supplements

RANK:4 - Web enhancements

RANK:5 - 3rd party campaign books

RANK:6 - 3rd party supplements

RANK:7 - 3rd party web enhancements

RANK:8 and 9 - Homebrew

Tag Name: SETTING:x

Variables Used (x):Text (Setting)

What it does:

This tells PCGen what the setting is (if there is one).

Eventually This will be used to filter sources.

Example:

`SETTING:Ravenloft`

Tag Name: BOOKTYPE:x

Variables Used (x):Text (Book type)

What it does:

This tells PCGen what the book type is.

Eventually This will be used to filter sources.

Example:

`SETTING:Supplement`

*** Updated 4.3.10

Tag Name: SOURCELONG:x

Variables Used (x):Text (Long name of source)

What it does:

The full product/book name.

Example:

`SOURCELONG:Core Rulebook I (Foo Handbook)`

The long source name for this file is "Core Rulebook I (Foo Handbook)".

*** Updated 4.3.10

Tag Name: SOURCESHORT:x

Variables Used (x):Text (Short name of source)

What it does:

The short product/book name.

Example:

`SOURCESHORT:FHB`

The short source name for this file is "FHB".

*** Updated 4.3.10

Tag Name: SOURCEWEB:x

Variables Used (x):Text (Web address)

What it does:

The URL that points directly to this product/book.

Example:

`SOURCEWEB:http://www.foogames.com/product.php?products=654321`

The web site for this source is "SOURCEWEB:http://www.foogames.com/product.php?products=654321".

*** New 4.3.10

Tag Name: PUBNAMELONG:x

Variables Used (x):Text (Long name of publisher)

What it does:

The Publisher's full name.

Example:

`PUBNAMELONG:Foo Games, Inc.`

*** New 4.3.10

Tag Name: PUBNAMESHORT:x

Variables Used (x):Text (Short name of publisher)

What it does:

The Publisher's abbreviated name (usually their initials).

Example:

`PUBNAMESHORT:FGI`

*** New 4.3.10

Tag Name: PUBNAMEWEB:x

Variables Used (x):Text (Web link)

What it does:

The Publisher's website/URL.

Example:

`PUBNAMEWEB:http://www.foogames.com/index.php`

Tag Name: SHOWINMENU:x

Variables Used (x):Boolean (true or false)

Example:

`SHOWINMENU:true`

What it does:

When set to true, this tag tells PCGen to display this campaign in the Settings -> Campaigns menu. When selected, it will unload all other campaigns, and load this campaign. It will also set any options listed in the PCC file. It will appear in a submenu of its gamemode.

Tag Name: TYPE:x.x

Variables Used (x):Text (Source types)

What it does:

This MUST be third in the file. The tag elements are as follows:

- element 1 (e.g., Foo Games) is the name of the company or individual that produced the material that the data files are based on;
- element 2 is the format of that original material (e.g., Sourcebook, Web Enhancement, Magazine, Supplement, etc.), and;
- element 3 (optional) is the "campaign setting" for the original material (such as the publisher's campaign realm).

Example:

`TYPE:Foo Games.Core Rules.Core`

## Main Body Tags

The function of all the main body tags is tell PCGen to load a specific file. There are three ways of doing this. The first and most common is by a relative file path. The path is relative to the .pcc file so if the file and the .pcc file that calls it are in the same directory then all that is needed is the name of the file. 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 folder. by using an @ symbol and a file path PCGen will locate the file by looking in the data folder by the path specified. The third method is by loading data files over the internet. To do this you must set PCGens preferences to allow this. You can then create a .pcc file which uses web address instead of file paths to load source files.

Examples:

`CLASS:fhbclasses.lst`

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

Examples:

`CLASS:@/foogames/sourcebooks/foo/core/fhandbook/fhbclasses.lst`

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

Examples:

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

Loads the source file from a web site.

IMPORTANT NOTE: The following tags 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 you would separate each file to be loaded (of the appropriate type, i.e., `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.

Tag Name: PCC:x

Variables Used (x):Text (File path)

What it does:

Use to include other pcc files. It is recommended that you include this tag before any tags that load LST files. When including data files you only need to use their filename if they are located in the same directory as the PCC file, itself. If not, you must include path information along with the filename:

- you may use relative paths (e.g., `PCC:..\peerdirectory\myothersource.pcc`), or;
- a special absolute path (e.g., `PCC:@\foogames\sourcebooks\foo\core\fhandbook\fhb.pcc`).

Using the special character `@` indicates that you want to start the file search from the root data directory of PCGen instead of the directory where the current PCC file is located.

Example:

`PCC:..\foodir\foobook.pcc`

Tag Name: LSTEXCLUDE:x|x

Variables Used (x):Text (File names)

What it does:

This must be before PCC/LST file INCLUDE statements if used. Allows you to customize which LST files are loaded. All of the files listed will NOT be loaded, even if referenced later by other included PCC files. The LST file list can be a single LST filename per entry, or can be separated by the "|" (pipe) character.

Examples:

`LSTEXCLUDE:fooraces.lst`

`LSTEXCLUDE:fooraces.lst|foogods.lst`

Tag Name: INCLUDE:x

Variables Used (x):LST object name

Variables Used:CLASS, COMPANIONMODS, DEITY, DOMAIN, EQUIPMENT, EQUIPMOD, FEAT, KIT, LANGUAGE, RACE, SKILL, SPELL, TEMPLATE, WEAPONPROF

What it does:

This would first load all the races from the `fhbrace.lst` file, then add to that list all the races defined in `myrace.lst` but then include only the Happy Elf class from `myrace.lst`. The resulting list of races would then be available for character creation. The INCLUDE tag will not prevent other .pcc files from loading the same LST files.

Example:

`RACE:fhbrace.lst|myrace.lst|(INCLUDE:Happy Elf)`

Tag Name: EXCLUDE:x

Variables Used (x):LST object name

Variables Used:CLASS, COMPANIONMODS, DEITY, DOMAIN, EQUIPMENT, EQUIPMOD, FEAT, KIT, LANGUAGE, RACE, SKILL, SPELL, TEMPLATE, WEAPONPROF

What it does:

This would first load all the races from the `fhbrace.lst` file and exclude the Fooman and Foowarf from it, then add to that list all the races defined in `myrace.lst`. The resulting list of races would then be available for character creation. The EXCLUDE tag will not prevent other .pcc files from loading the same LST files.

Example:

`RACE:fhbrace.lst|(EXCLUDE:Fooman|Foowarf)|myrace.lst`

Tag Name: BIOSET:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the biosettings list file specified

Example:

`BIOSET:biosettings.lst`

Tag Name: CLASS:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the classes list file specified

Example:

`CLASS:fhbclasses.lst`

Tag Name: COMPANIONMOD:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the companion modifiers list file specified

Example:

`COMPANIONMOD:foocompanionmods.lst`

Tag Name: DEITY:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the deities list file specified

Example:

`DEITY:foodeities.lst`

Tag Name: DOMAIN:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the domains list file specified

Example:

`DOMAIN:foodomains.lst`

Tag Name: EQUIPMENT:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the equipment list file specified

Examples:

`EQUIPMENT:fooallequip.lst`

`EQUIPMENT:fooequiparmorsshields.lst`

Tag Name: EQUIPMOD:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the equipment modifiers list file specified

Example:

`EQUIPMOD:fooequipmods.lst`

Tag Name: FEAT:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the feats list file specified

Example:

`FEAT:foofeats.lst`

Tag Name: KIT:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the starting kits list file specified

Example:

`KIT:foostartingkits.lst`

Tag Name: LANGUAGE:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the languages list file specified

Example:

`LANGUAGE:foolanguages.lst`

Tag Name: OPTION:x

Variables Used (x):Text (Option)

What it does:

Specifies an option which should be set when the campaign is loaded. The format is the same as in the `options.ini` file. The user can stop these options from being set by unselecting the PCGen -> Sources -> Allow options to be set by sources setting in the Preferences dialog. Note: Only the pcgen.options lines can be used. pcgen.files settings are not valid for this tag.

Examples:

`OPTION:hpMaxAtFirstLevel=true`

`OPTION:pcgen.options.maxWandSpellLevel=4`

Tag Name: RACE:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the races list file specified

Example:

`RACE:fooraces.lst`

Tag Name: REQSKILL:x

Variables Used (x):ALL or REQSKILL:ALL or UNTRAINED or REQSKILL:UNTRAINED or Text

What it does:

A "|" (pipe) delimited list can include:

- `UNTRAINED` - all untrained skills will be automatically included on any character as if the skill had the REQ tag (see `skill.lst` for details);
- `ALL` - all skills will have the REQ tag, or;
- a list of specified skill names.

If this tag is included it should be after the `SKILL:` tag.

Example:

`REQSKILL:Alchemy|Bluff|Diplomacy|etc`

Tag Name: SKILL:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the skills list file specified

Example:

`SKILL:fooskills.lst`

Tag Name: SPELL:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the spells list file specified

Example:

`SPELL:foospells.lst`

Tag Name: TEMPLATE:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the template list file specified

Example:

`TEMPLATE:footemplates.lst`

Tag Name: WEAPONPROF:x

Variables Used (x):Text (File path)

What it does:

Tells PCGen to load the weapon proficiencies list file specified

Example:

`WEAPONPROF:fooweapprofsimple.lst`