<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://hlkitwiki.wolflair.com//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Colen</id>
	<title>HLKitWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://hlkitwiki.wolflair.com//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Colen"/>
	<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Special:Contributions/Colen"/>
	<updated>2026-05-05T14:30:30Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3195</id>
		<title>TableDef Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3195"/>
		<updated>2017-11-10T22:52:55Z</updated>

		<summary type="html">&lt;p&gt;Colen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;tabledef&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
Note that for a tabledef to be associated with a table or chooser portal, you must specify the id of the tabledef for the portal&#039;s &amp;quot;usetabledef&amp;quot; attribute.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|id&lt;br /&gt;
|Id – Specifies the unique id of the tabledef.&lt;br /&gt;
|-&lt;br /&gt;
|component&lt;br /&gt;
|Id – Specifies the unique id of the component the tabledef is associated with. Like a table portal, only things / picks from this component will be shown in the table.&lt;br /&gt;
|-&lt;br /&gt;
|isglobal&lt;br /&gt;
|(Optional) Boolean – if the table is used by ALL characters for the game system, specify &amp;quot;yes&amp;quot;. If this is specified, you don&#039;t need to add &amp;quot;allowtable&amp;quot; tags for this table, as it&#039;s assumed to be present on all characters. This is unlikely to be true for game systems with multiple different types of characters, like Pathfinder (NPCs, kingdoms, armies, etc), so don&#039;t specify this unless every single character for the game system will need it. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|description&lt;br /&gt;
|Text – A short string intended to communicate what the table does (in very general terms, like &amp;quot;Adds magic weapons&amp;quot;) to the UI developers.&lt;br /&gt;
|-&lt;br /&gt;
|errorcategory&lt;br /&gt;
|(Optional) Unique id – indicates that this table is only marked as invalid if picks showing in it have an error of this category. If this attribute isn&#039;t set, the table will be marked as invalid if any pick in the table has an error.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;tabledef&amp;quot; element also possesses two child elements that define the specifics of the table. Both of these child elements are optional.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|select&lt;br /&gt;
|Contains details about the selection of new picks for this table. If the table can&#039;t select new picks (for example, if it&#039;s a fixed table), this should be omitted.&lt;br /&gt;
|-&lt;br /&gt;
|show&lt;br /&gt;
|Contains details about the picks shown in this table. Can be omitted if nothing interesting needs to be specified (for example, if the table has no list expression).&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;select&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|choosepicks&lt;br /&gt;
|(Optional) Set – Designates whether the selectable objects consist of things or picks, and, if the latter, where the list of picks is retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;thing – The selectable objects are things.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The selectable objects are picks from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The selectable objects are picks from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;thing&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|buyaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when purchasing items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|sellaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when selling items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|wrapupaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use after adding items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|linkage&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that will be used as a linkage. When a new pick is added to the table, that pick has an automatic linkage setup to any existing pick derived from the specified thing. If no derived pick exists when the new pick is added, no linkage is ever created. If empty, no linkage is established. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatepick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a pick that will contain a dynamically generated [[Candidate Tag Expression|Candidate tag expression]] for use in determining the list of available objects to choose from. If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatefield&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a text-based field that contains the [[Candidate Tag Expression|Candidate tag expression]] used to determine the list of available objects to choose from. This field must exist within the pick identified by the &amp;quot;candidatepick&amp;quot; attribute (above). If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|existphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|existprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|prereqtarget&lt;br /&gt;
|(Optional) Set – Designates the container against which all pre-requisite tests need to be performed when determining the list of items available for selection. When displacement is utilized, pre-requisites need to be tested against the container to which the new picks will ultimately be added. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The default parent container is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;parent – The next parent up the hierarchy is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The top-level hero is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|empty&lt;br /&gt;
|(Optional) Text – Specifies the text message to be displayed if the user attempts to select an option and there are no available items to choose from. If empty, a default message is displayed. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|useagentcandidate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the candidatepick of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|useagentlinkage&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the linkage of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentautotag&lt;br /&gt;
|(Optional) Id – Specifies the tag group of the agent pick&#039;s identity tag which will be added to picks added to this table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|maxchoicelimit&lt;br /&gt;
|(Optional) Number – How many picks can be added to this table. Default: no limit. Must be 1 for tabledefs associated with choosers.&lt;br /&gt;
|-&lt;br /&gt;
|transactiontype&lt;br /&gt;
|Text – a short string, typically a single word, intended to communicate what sort of &amp;quot;purchase&amp;quot; the table typically makes. For example, any table in Pathfinder that allows you to buy gear might specify &amp;quot;money&amp;quot; for this attribute, indicating that money is generally used to buy the gear it contains, while the &amp;quot;Vanities&amp;quot; table might specify &amp;quot;prestige&amp;quot; instead, to indicate that the items within are generally bought with prestige.&lt;br /&gt;
|-&lt;br /&gt;
|autothing&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the thing to be added to the table whenever the user wants to add a pick. Use this if only a single thing can ever be added to the table.&lt;br /&gt;
|-&lt;br /&gt;
|selectnone&lt;br /&gt;
|(Optional) Boolean – Indicates whether it&#039;s valid to have no selection in this chooser. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;select&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#candidate|candidate]]&lt;br /&gt;
|An optional &amp;quot;candidate&amp;quot; element may appear as defined by the given link. This element defines a [[Candidate Tag Expression]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#restriction|restriction]]&lt;br /&gt;
|An optional &amp;quot;restriction&amp;quot; element may appear as defined by the given link. This element defines a [[Restriction Tag Expression]] for the table that identifies things which cannot be selected if they&#039;ve already been added to this table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#needtag|needtag]]&lt;br /&gt;
|Zero or more &amp;quot;needtag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#denytag|denytag]]&lt;br /&gt;
|Zero or more &amp;quot;denytag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#secondary|secondary]]&lt;br /&gt;
|An optional &amp;quot;secondary&amp;quot; element may appear as defined by the given link. This element defines a [[Secondary Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#existence|existence]]&lt;br /&gt;
|An optional &amp;quot;existence&amp;quot; element may appear as defined by the given link. This element defines an [[Existence Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoTag Element (Data)|autotag]]&lt;br /&gt;
|Zero or more &amp;quot;autotag&amp;quot; elements may appear as defined by the given link. This element specifies tags that are automatically assigned to each added thing.&lt;br /&gt;
|-&lt;br /&gt;
|[[IgnoreRequirements Element (Data)|ignorerequirements]]&lt;br /&gt;
|An optional &amp;quot;ignorerequirements&amp;quot; element may appear as defined by the given link. This element specifies circumstances under which pre-reqs for things and picks in this table are ignored.&lt;br /&gt;
|-&lt;br /&gt;
|[[#change|change]]&lt;br /&gt;
|An optional &amp;quot;change&amp;quot; element may appear as defined by the given link. This element defines a [[Change Script]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;show&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|allowstack&lt;br /&gt;
|(Optional) Boolean – Indicates whether the user is allowed to stack items within the table, subject to the restrictions imposed for each item. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentlist&lt;br /&gt;
|(Optional) Id – If set to a tag group id, only picks with the agent pick&#039;s identity tag from that group are shown in the table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|allowmove&lt;br /&gt;
|(Optional) Boolean – Indicates whether picks in this table can be moved out of this table, if the user drags them around. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|listpick&lt;br /&gt;
|(Optional) Id – Unique id of the pick to take the table&#039;s list expression from (see listfield, below). Note that this does not work when used with portals. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|listfield&lt;br /&gt;
|(Optional) Id – Unique id of the field to take the table&#039;s list expression from (see listpick, above). Note that this does not work when used with portals. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;show&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#list|list]]&lt;br /&gt;
|An optional &amp;quot;list&amp;quot; element may appear as defined by the given link. This element defines a [[List Tag Expression]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;list&amp;quot; Element{{anchor|list}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;list&amp;quot; element defines a [[List Tag Expression]] for the table that limits the set of picks that are shown. Regardless of this tag expression, all picks added via this table are always shown within it, enabling deletion of any object added through the table. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the List tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;candidate&amp;quot; Element{{anchor|candidate}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;candidate&amp;quot; element defines a [[Candidate Tag Expression]] for the table that limits the set of things/picks that are available for selection. If this element is omitted entirely, then the items available for selection must satisfy the List tag expression instead (above). The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|inheritlist&lt;br /&gt;
|(Optional) Boolean – Indicates whether the List tag expression (above) is automatically inherited into the Candidate tag expression. If inherited, all available objects must satisfy both the Candidate tag expressions and the List tag expression. This eliminates the need to redundantly maintain the same filter logic within both tag expressions. If not inherited, then the Candidate tag expression supersedes the List tag expression. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Candidate tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;restriction&amp;quot; Element{{anchor|restriction}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;restriction&amp;quot; element defines a [[Restriction Tag Expression]] for the table that further limits the set of things/picks that are available for selection. This tag expression is compared against all picks that have already been added to &#039;&#039;&#039;this table&#039;&#039;&#039;. Any object that already exists within the table is precluded from being selected again, resulting in it being omitted from the list of available choices. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Restriction tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;needtag&amp;quot; Element{{anchor|needtag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;needtag&amp;quot; element defines a tag relationship that must exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it has at least one matching tag with the same id in a separate tag group. If the tag is not found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;denytag&amp;quot; Element{{anchor|denytag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;denytag&amp;quot; element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it does not possess any matching tags with the same ids in a separate tag group. If any matching tags are found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;secondary&amp;quot; Element{{anchor|secondary}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;secondary&amp;quot; element defines a [[Secondary Tag Expression]] that is automatically associated with every new pick added via the table. This new tag expression is treated like an additional [[Container Tag Expression]] for the pick that must also be satisfied. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;existence&amp;quot; Element{{anchor|existence}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;existence&amp;quot; element defines an [[Existence Tag Expression]] that is automatically associated with every new pick added via the table. If a pick ever fails to satisfy the tag expression during an evaluation cycle, the pick is automatically deleted. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;change&amp;quot; Element{{anchor|change}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;change&amp;quot; element defines a [[Change Script]] for the table that is invoked whenever the user selects a new choice from the list of options. This script allows the implications of the new selection to be integrated and the display updated. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Change script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=TableAuto_Element_(Data)&amp;diff=3194</id>
		<title>TableAuto Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=TableAuto_Element_(Data)&amp;diff=3194"/>
		<updated>2017-11-10T21:35:36Z</updated>

		<summary type="html">&lt;p&gt;Colen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference|Portal Element (Data)}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;table_auto&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
Auto tables are a special kind of dynamic table that can only ever contain a single item. As such, an auto table looks like a dynamic table until the user clicks on the &amp;quot;add&amp;quot; item at the bottom. Instead of displaying a choose form, a new instance of a specific item is added to the table. This is extremely useful for tables of journal entries and character portraits. Each auto table is defined via the use of the &amp;quot;table_auto&amp;quot; element. The complete list of attributes for this element is below.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|component&lt;br /&gt;
|Id – Specifies the unique id of the component that all shown objects must be derived from. &lt;br /&gt;
|-&lt;br /&gt;
|usetabledef&lt;br /&gt;
|(Optional) Id – Specifies the [[TableDef Element (Data)|TableDef]] to reference for details of this table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|autothing&lt;br /&gt;
|Id – Specifies the unique id of the thing to be added to the table whenever the user clicks on the &amp;quot;add&amp;quot; item at the bottom.&lt;br /&gt;
|-&lt;br /&gt;
|showtemplate&lt;br /&gt;
|Id – Specifies the unique id of the template to be used for displaying the picks that have been added to the table.&lt;br /&gt;
|-&lt;br /&gt;
|showsortset&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the sort set to be used for sequencing the items that exist within the table. If empty, all objects are sorted by name. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showgaphorz&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the horizontal axis to insert between items that exist within the table. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|showgapvert&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the vertical axis to insert between items that exist within the table. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|columns&lt;br /&gt;
|(Optional) Integer – Specifies the number of columns of data to display within the table. Default: &amp;quot;1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|scrollable&lt;br /&gt;
|(Optional) Boolean – Indicates whether the table contents can be scrolled by the user. By default, a scroller is shown whenever the number of items exceeds the visible space, but you can disable this behavior. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|addtemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be used for the &amp;quot;add&amp;quot; item that always appears at the bottom of the table and that users will click on to add an item to the table. This allows detailed controlled when the simple &amp;quot;additem&amp;quot; script is not sufficient. If empty, the &amp;quot;additem&amp;quot; element must be specified. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|addpick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that is associated with the &amp;quot;add&amp;quot; item at the bottom of the table. HL will retrieve any pick based on this thing that exists within the target container and use it. This allows you to control what fields can be accessed from the &amp;quot;addtemplate&amp;quot;. If empty, the &amp;quot;actor&amp;quot; pick is used, except within a gizmo, where its &amp;quot;defaultthing&amp;quot; is used instead. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|addspace&lt;br /&gt;
|(Optional) Integer – Specifies the additional vertical space to be inserted when displaying the simple &amp;quot;add&amp;quot; item at the bottom of the table by using the &amp;quot;additem&amp;quot; script. The height of the item is based on the font height of the text shown, so this attribute allows you to insert additional padding if you wish. Default: &amp;quot;2&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|headertemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be used for a header item that appears at the top of the table. This allows you to add column headers above various pieces of information in the table. If empty, the &amp;quot;headertitle&amp;quot; element dictates whether a header is displayed above the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|headerpick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that is associated with the header item at the top of the table. HL will retrieve any pick based on this thing that exists within the target container and use it. This allows you to control what fields can be accessed from the &amp;quot;headertemplate&amp;quot;. If empty, the &amp;quot;actor&amp;quot; pick is used, except within a gizmo, where its &amp;quot;defaultthing&amp;quot; is used instead. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showfrozenfixed&lt;br /&gt;
|(Optional) Boolean – Indicates whether the table must be converted to a &amp;quot;fixed&amp;quot; table whenever the table is designated as frozen. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|allowuserorder&lt;br /&gt;
|(Optional) Boolean – Indicates whether the items in the table can be re-ordered by the user. If enabled, the specified component must designate a suitable ordering field or a separate component with such a field must be specified via the &amp;quot;ordercomponent&amp;quot; attribute. Default: &amp;quot;no&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note}}Verify that whatever sort set you use for showing the items includes the designated ordering field as its first sort key.&lt;br /&gt;
|-&lt;br /&gt;
|ordercomponent&lt;br /&gt;
|(Optional) Id – Specifies the unique id of an alternate component that possesses a suitable ordering field. This attribute is only applicable when the table supports user ordering. If empty, the ordering field is dictated by the component associated with the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|linkage&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that will be used as a linkage. When a new pick is added to the table, that pick has an automatic linkage setup to any existing pick derived from the specified thing. If no derived pick exists when the new pick is added, no linkage is ever created. If empty, no linkage is established. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|alwaysupdate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the table must be dynamically updated after any modification to the actor so that the influence of other changes are always visually reflected to the user. Default: &amp;quot;no&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note}}This option can significantly slow down display updates on slower computers, so only enable this if truly necessary.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;table_auto&amp;quot; element also possesses child elements that define additional behaviors of the portal. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#list|list]]&lt;br /&gt;
|An optional &amp;quot;list&amp;quot; element may appear as defined by the given link. This element defines a [[List Tag Expression]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#secondary|secondary]]&lt;br /&gt;
|An optional &amp;quot;secondary&amp;quot; element may appear as defined by the given link. This element defines a [[Secondary Tag Expression]] that is associated with every new pick added via the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#existence|existence]]&lt;br /&gt;
|An optional &amp;quot;existence&amp;quot; element may appear as defined by the given link. This element defines an [[Existence Tag Expression]] that is associated with every new pick added via the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoTag Element (Data)|autotag]]&lt;br /&gt;
|Zero or more &amp;quot;autotag&amp;quot; elements may appear as defined by the given link. This element specifies tags that are automatically assigned to each added thing.&lt;br /&gt;
|-&lt;br /&gt;
|[[#headertitle|headertitle]]&lt;br /&gt;
|An optional &amp;quot;headertitle&amp;quot; element may appear as defined by the given link. This element defines a [[HeaderTitle Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#additem|additem]]&lt;br /&gt;
|An optional &amp;quot;additem&amp;quot; element may appear as defined by the given link. This element defines a [[AddItem Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;list&amp;quot; Element{{anchor|list}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;list&amp;quot; element defines a [[List Tag Expression]] for the portal that limits the set of picks that are shown. Regardless of this tag expression, all picks added via this portal are always shown within it, enabling deletion of any object added through the table. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the List tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;secondary&amp;quot; Element{{anchor|secondary}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;secondary&amp;quot; element defines a [[Secondary Tag Expression]] that is automatically associated with every new pick added via the portal. This new tag expression is treated like an additional [[Container Tag Expression]] for the pick that must also be satisfied. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;existence&amp;quot; Element{{anchor|existence}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;existence&amp;quot; element defines an [[Existence Tag Expression]] that is automatically associated with every new pick added via the portal. If a pick ever fails to satisfy the tag expression during an evaluation cycle, the pick is automatically deleted. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;headertitle&amp;quot; Element{{anchor|headertitle}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;headertitle&amp;quot; element defines a [[HeaderTitle Script]] for the portal that synthesizes the text to be displayed at the top of the table as a header. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the HeaderTitle script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;additem&amp;quot; Element{{anchor|additem}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;additem&amp;quot; element defines a [[AddItem Script]] for the portal that synthesizes the text to be displayed within the &amp;quot;add&amp;quot; item at the bottom of the table, where the user will click to add a new item. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the AddItem script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
The following example demonstrates what an auto table portal might look like. All default values are assumed for optional attributes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;portal id=&amp;quot;peImages&amp;quot; style=&amp;quot;tblNormal&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;table_auto component=&amp;quot;UserImage&amp;quot;&lt;br /&gt;
      showtemplate=&amp;quot;peImage&amp;quot; autothing=&amp;quot;mscUserImg&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;headertitle&amp;gt;&lt;br /&gt;
      @text = &amp;quot;Gallery&amp;quot;&lt;br /&gt;
      &amp;lt;/headertitle&amp;gt;&lt;br /&gt;
    &amp;lt;additem&amp;gt;&lt;br /&gt;
      @text = &amp;quot;Add Another Image&amp;quot;&lt;br /&gt;
      &amp;lt;/additem&amp;gt;&lt;br /&gt;
    &amp;lt;/table_auto&amp;gt;&lt;br /&gt;
  &amp;lt;/portal&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=TableFixed_Element_(Data)&amp;diff=3193</id>
		<title>TableFixed Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=TableFixed_Element_(Data)&amp;diff=3193"/>
		<updated>2017-11-10T21:34:59Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* The &amp;quot;table_fixed&amp;quot; Element */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference|Portal Element (Data)}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;table_fixed&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
Fixed tables present a list of items to the user that cannot be modified by the user through the table. This is ideal for displaying a list of character attributes or a summary of the special abilities possessed by a character. Since they cannot be modified, fixed tables have only a set of behaviors for showing the selected items to the user. Each fixed table is defined via the use of the &amp;quot;table_fixed&amp;quot; element. The complete list of attributes for this element is below.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|component&lt;br /&gt;
|Id – Specifies the unique id of the component that all shown objects must be derived from. &lt;br /&gt;
|-&lt;br /&gt;
|usetabledef&lt;br /&gt;
|(Optional) Id – Specifies the [[TableDef Element (Data)|TableDef]] to reference for details of this table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|showtemplate&lt;br /&gt;
|Id – Specifies the unique id of the template to be used for displaying the picks that have been added to the table.&lt;br /&gt;
|-&lt;br /&gt;
|showpicks&lt;br /&gt;
|(Optional) Set – Designates the source from which the picks shown are retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The picks shown are from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The picks shown are from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;actor – The picks shown represent all actors in the entire portfolio.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;lead – The picks shown represent all lead actors in the entire portfolio.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;minion – The picks shown are all immediate minions for the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|showsortset&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the sort set to be used for sequencing the items that exist within the table. If empty, all objects are sorted by name. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showgapx&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the X-axis to insert between items that exist within the table. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|showgapy&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the Y-axis to insert between items that exist within the table. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|columns&lt;br /&gt;
|(Optional) Integer – Specifies the number of columns of data to display within the table. Default: &amp;quot;1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|scrollable&lt;br /&gt;
|(Optional) Boolean – Indicates whether the table contents can be scrolled by the user. By default, a scroller is shown whenever the number of items exceeds the visible space, but you can disable this behavior. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|headertemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be used for a header item that appears at the top of the table. This allows you to add column headers above various pieces of information in the table. If empty, the &amp;quot;headertitle&amp;quot; element dictates whether a header is displayed above the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|headerpick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that is associated with the header item at the top of the table. HL will retrieve any pick based on this thing that exists within the target container and use it. This allows you to control what fields can be accessed from the &amp;quot;headertemplate&amp;quot;. If empty, the &amp;quot;actor&amp;quot; pick is used, except within a gizmo, where its &amp;quot;defaultthing&amp;quot; is used instead. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|footertemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be used for a footer at the bottom of the table. This allows you to put information at the bottom of the table that is always tied to the table for sizing and positioning purposes. If empty, no footer is displayed for the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showfixedlast&lt;br /&gt;
|(Optional) Boolean – Indicates whether all non-deletable picks within the table are sorted to the end of the list of picks shown. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|allowuserorder&lt;br /&gt;
|(Optional) Boolean – Indicates whether the items in the table can be re-ordered by the user. If enabled, the specified component must designate a suitable ordering field or a separate component with such a field must be specified via the &amp;quot;ordercomponent&amp;quot; attribute. Default: &amp;quot;no&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note}}Verify that whatever sort set you use for showing the items includes the designated ordering field as its first sort key.&lt;br /&gt;
|-&lt;br /&gt;
|ordercomponent&lt;br /&gt;
|(Optional) Id – Specifies the unique id of an alternate component that possesses a suitable ordering field. This attribute is only applicable when the table supports user ordering. If empty, the ordering field is dictated by the component associated with the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|alwaysupdate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the table must be dynamically updated after any modification to the actor so that the influence of other changes are always visually reflected to the user. Default: &amp;quot;no&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note}}This option can significantly slow down display updates on slower computers, so only enable this if truly necessary.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;table_fixed&amp;quot; element also possesses child elements that define additional behaviors of the portal. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#list|list]]&lt;br /&gt;
|An optional &amp;quot;list&amp;quot; element may appear as defined by the given link. This element defines a [[List Tag Expression]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#headertitle|headertitle]]&lt;br /&gt;
|An optional &amp;quot;headertitle&amp;quot; element may appear as defined by the given link. This element defines a [[HeaderTitle Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;list&amp;quot; Element{{anchor|list}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;list&amp;quot; element defines a [[List Tag Expression]] for the portal that limits the set of picks that are shown. Regardless of this tag expression, all picks added via this portal are always shown within it, enabling deletion of any object added through the table. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the List tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;headertitle&amp;quot; Element{{anchor|headertitle}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;headertitle&amp;quot; element defines a [[HeaderTitle Script]] for the portal that synthesizes the text to be displayed at the top of the table as a header. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the HeaderTitle script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
The following example demonstrates what a fixed table portal might look like. All default values are assumed for optional attributes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;portal id=&amp;quot;baAttrib&amp;quot; style=&amp;quot;tblInvis&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;table_fixed component=&amp;quot;Attribute&amp;quot; scrollable=&amp;quot;no&amp;quot;&lt;br /&gt;
      showtemplate=&amp;quot;baAttrPick&amp;quot; showsortset=&amp;quot;explicit&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;headertitle&amp;gt;&lt;br /&gt;
      @text = &amp;quot;Attributes&amp;quot;&lt;br /&gt;
      &amp;lt;/headertitle&amp;gt;&lt;br /&gt;
    &amp;lt;/table_fixed&amp;gt;&lt;br /&gt;
  &amp;lt;/portal&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=ChooserTable_Element_(Data)&amp;diff=3192</id>
		<title>ChooserTable Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=ChooserTable_Element_(Data)&amp;diff=3192"/>
		<updated>2017-11-10T21:34:40Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* The &amp;quot;chooser_table&amp;quot; Element */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference|Portal Element (Data)}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;chooser_table&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
Choosers are similar to thing-based menus in some ways, as they allow the user to select one thing or pick from a list that is determined dynamically. One key difference with choosers is that any selected thing/pick is added to the container as a new pick. If a pick is selected, a new pick derived from the same thing is added. Another key difference is that the available things/picks are displayed for selection in a &amp;quot;choose form&amp;quot;, allowing each object to be presented with detailed information. The &amp;quot;chooser&amp;quot; mechanism is ideal for selecting facets like race, profession, archetype, etc. Each chooser is defined via the use of the &amp;quot;chooser_table&amp;quot; element. The complete list of attributes for this element is below.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|component&lt;br /&gt;
|Id – Specifies the unique id of the component that all selectable objects must be derived from. &lt;br /&gt;
|-&lt;br /&gt;
|usetabledef&lt;br /&gt;
|(Optional) Id – Specifies the [[TableDef Element (Data)|TableDef]] to reference for the selection details of this chooser. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|choosetemplate&lt;br /&gt;
|Id – Specifies the unique id of the template to be used for displaying selectable objects.&lt;br /&gt;
|-&lt;br /&gt;
|choosepicks&lt;br /&gt;
|(Optional) Set – Designates whether the selectable objects consist of things or picks, and, if the latter, where the list of picks is retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;thing – The selectable objects are things.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The selectable objects are picks from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The selectable objects are picks from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;actor – Same as &amp;quot;hero&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;thing&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|choosesortset&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the sort set to be used for sequencing all of the objects presented for selection. If empty, all objects are sorted by name. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|choosegapx&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the X-axis to insert between items presented for selection. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|choosegapy&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the Y-axis to insert between items presented for selection. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|descwidth&lt;br /&gt;
|(Optional) Integer – Specifies the width of the reserved &amp;quot;description&amp;quot; area on the right within the choose form. Some items need more width for lengthy descriptions and some do not, so you can control this as you see fit. Default: &amp;quot;250&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|buytemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be shown in the lower right corner of the choose form for controlling the details of a purchase transaction. If empty, no buy template is utilized. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|xactspecial&lt;br /&gt;
|(Optional) Integer – When a buy template is shared between two or more portals or things, the template behavior may need to be tailored based on the usage. If this need arises, this attribute specifies a unique value that identifies this particular usage. By assigning a different value to each usage and keying on it within the template&#039;s Position script, you can tailor the template appropriately. Default: &amp;quot;0&amp;quot;. &lt;br /&gt;
|-&lt;br /&gt;
|linkage&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that will be used as a linkage. When a new pick is added via the chooser, that pick has an automatic linkage setup to any existing pick derived from the specified thing. If no derived pick exists when the new pick is added, no linkage is ever created. If empty, no linkage is established. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showupdate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the chooser needs to be dynamically updated after any modification to the actor so that the influence of other changes are always visually reflected to the user, such as through color highlighting. Default: &amp;quot;no&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note}}This option can significantly slow down display updates on slower computers, so only enable this if truly necessary.&lt;br /&gt;
|-&lt;br /&gt;
|candidatepick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a pick that will contain a dynamically generated [[Candidate Tag Expression|Candidate tag expression]] for use in determining the list of available objects to choose from. If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatefield&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a text-based field that contains the [[Candidate Tag Expression|Candidate tag expression]] used to determine the list of available objects to choose from. This field must exist within the pick identified by the &amp;quot;candidatepick&amp;quot; attribute (above). If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|prereqtarget&lt;br /&gt;
|(Optional) Set – Designates the container against which all pre-requisite tests need to be performed when determining the list of items available for selection. When displacement is utilized, pre-requisites need to be tested against the container to which the new picks will ultimately be added. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The default parent container is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;parent – The next parent up the hierarchy is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The top-level hero is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|empty&lt;br /&gt;
|(Optional) Text – Specifies the text message to be displayed if the user attempts to select an option and there are no available items to choose from. If empty, a default message is displayed. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showlabel&lt;br /&gt;
|(Optional) Boolean – (iPad only) Indicates whether the label displaying the current selection of the menu should be shown. This is used when you just want the menu control to be used as a button to make a selection which will be displayed some other way. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{note}}Choosers possess a &amp;quot;buy&amp;quot; template, but there is no way to properly &amp;quot;sell&amp;quot; an item selected via a chooser. The reason for this is to allow the &amp;quot;buy&amp;quot; template to be used for customization purposes instead of actually buying and selling gear. The same mechanism can be used to allow the user to configure the item selected via the chooser, such as providing an edit or menu portal to specify an important facet of the selected item.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;chooser_table&amp;quot; element also possesses child elements that define additional behaviors of the portal. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#candidate|candidate]]&lt;br /&gt;
|An optional &amp;quot;candidate&amp;quot; element may appear as defined by the given link. This element defines a [[Candidate Tag Expression]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#needtag|needtag]]&lt;br /&gt;
|Zero or more &amp;quot;needtag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#denytag|denytag]]&lt;br /&gt;
|Zero or more &amp;quot;denytag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#xacttag|xacttag]]&lt;br /&gt;
|Zero or more &amp;quot;xacttag&amp;quot; elements may appear as defined by the given link. This element defines a tag that is assigned to the transaction pick while the choose form is visible.&lt;br /&gt;
|-&lt;br /&gt;
|[[#secondary|secondary]]&lt;br /&gt;
|An optional &amp;quot;secondary&amp;quot; element may appear as defined by the given link. This element defines a [[Secondary Tag Expression]] that is associated with every new pick added via the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#existence|existence]]&lt;br /&gt;
|An optional &amp;quot;existence&amp;quot; element may appear as defined by the given link. This element defines an [[Existence Tag Expression]] that is associated with every new pick added via the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoTag Element (Data)|autotag]]&lt;br /&gt;
|Zero or more &amp;quot;autotag&amp;quot; elements may appear as defined by the given link. This element specifies tags that are automatically assigned to each added thing.&lt;br /&gt;
|-&lt;br /&gt;
|[[#chosen|chosen]]&lt;br /&gt;
|An optional &amp;quot;chosen&amp;quot; element may appear as defined by the given link. This element defines a [[Chosen Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#titlebar|titlebar]]&lt;br /&gt;
|An optional &amp;quot;titlebar&amp;quot; element may appear as defined by the given link. This element defines a [[TitleBar Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#description|description]]&lt;br /&gt;
|An optional &amp;quot;description&amp;quot; element may appear as defined by the given link. This element defines a [[Description Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#change|change]]&lt;br /&gt;
|An optional &amp;quot;change&amp;quot; element may appear as defined by the given link. This element defines a [[Change Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;candidate&amp;quot; Element{{anchor|candidate}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;candidate&amp;quot; element defines a [[Candidate Tag Expression]] for the portal that limits the set of things/picks that are available for selection. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Candidate tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;needtag&amp;quot; Element{{anchor|needtag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;needtag&amp;quot; element defines a tag relationship that must exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it has at least one matching tag with the same id in a separate tag group. If the tag is not found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;denytag&amp;quot; Element{{anchor|denytag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;denytag&amp;quot; element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it does not possess any matching tags with the same ids in a separate tag group. If any matching tags are found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;xacttag&amp;quot; Element{{anchor|xacttag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;xacttag&amp;quot; element specifies a tag that is automatically added to the transaction pick while the choose form is shown. These tags allow you to indicate contextual information about where the buy template is being used so that you can tailor the behavior appropriately. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|tag&lt;br /&gt;
|Id – Specifies the unique id of the tag to define within the tag group &amp;quot;transact&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;secondary&amp;quot; Element{{anchor|secondary}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;secondary&amp;quot; element defines a [[Secondary Tag Expression]] that is automatically associated with every new pick added via the portal. This new tag expression is treated like an additional [[Container Tag Expression]] for the pick that must also be satisfied. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;existence&amp;quot; Element{{anchor|existence}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;existence&amp;quot; element defines an [[Existence Tag Expression]] that is automatically associated with every new pick added via the portal. If a pick ever fails to satisfy the tag expression during an evaluation cycle, the pick is automatically deleted. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;chosen&amp;quot; Element{{anchor|chosen}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;chosen&amp;quot; element defines a [[Chosen Script]] for the portal, which synthesizes the text to be displayed as the chosen item within the portal. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Chosen script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;titlebar&amp;quot; Element{{anchor|titlebar}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;titlebar&amp;quot; element defines a [[TitleBar Script]] for the portal, which synthesizes the text to be displayed at the top of the choose form. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the TitleBar script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;description&amp;quot; Element{{anchor|description}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;description&amp;quot; element defines a [[Description Script]] for the portal, which synthesizes the text to be displayed within the description region of the choose form for the currently selected item on the left. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Description script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;change&amp;quot; Element{{anchor|change}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;change&amp;quot; element defines a [[Change Script]] for the portal that is invoked whenever the user selects a new choice from the list of options. This script allows the implications of the new selection to be integrated and the display updated. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Change script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
The following example demonstrates what a choosertable portal might look like. All default values are assumed for optional attributes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;portal id=&amp;quot;stRace&amp;quot; style=&amp;quot;chsNormal&amp;quot; width=&amp;quot;110&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;chooser_table component=&amp;quot;Race&amp;quot; choosetemplate=&amp;quot;LargeItem&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;chosen&amp;gt;&amp;lt;![CDATA[&lt;br /&gt;
      if (@ispick = 0) then&lt;br /&gt;
        @text = &amp;quot;{text ff0000}Select Race&amp;quot;&lt;br /&gt;
      else&lt;br /&gt;
        @text = &amp;quot;Race: &amp;quot; &amp;amp; field[name].text&lt;br /&gt;
        endif&lt;br /&gt;
      ]]&amp;gt;&amp;lt;/chosen&amp;gt;&lt;br /&gt;
    &amp;lt;titlebar&amp;gt;&lt;br /&gt;
      @text = &amp;quot;Choose the race for your character&amp;quot;&lt;br /&gt;
      &amp;lt;/titlebar&amp;gt;&lt;br /&gt;
    &amp;lt;/chooser_table&amp;gt;&lt;br /&gt;
  &amp;lt;/portal&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=TableFixed_Element_(Data)&amp;diff=3191</id>
		<title>TableFixed Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=TableFixed_Element_(Data)&amp;diff=3191"/>
		<updated>2017-11-10T21:34:11Z</updated>

		<summary type="html">&lt;p&gt;Colen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference|Portal Element (Data)}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;table_fixed&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
Fixed tables present a list of items to the user that cannot be modified by the user through the table. This is ideal for displaying a list of character attributes or a summary of the special abilities possessed by a character. Since they cannot be modified, fixed tables have only a set of behaviors for showing the selected items to the user. Each fixed table is defined via the use of the &amp;quot;table_fixed&amp;quot; element. The complete list of attributes for this element is below.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|component&lt;br /&gt;
|Id – Specifies the unique id of the component that all shown objects must be derived from. &lt;br /&gt;
|-&lt;br /&gt;
|usetabledef&lt;br /&gt;
|(Optional) Id – Specifies the [[TableDef Element (Data)|TableDef]] to reference for selection details of this table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|showtemplate&lt;br /&gt;
|Id – Specifies the unique id of the template to be used for displaying the picks that have been added to the table.&lt;br /&gt;
|-&lt;br /&gt;
|showpicks&lt;br /&gt;
|(Optional) Set – Designates the source from which the picks shown are retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The picks shown are from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The picks shown are from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;actor – The picks shown represent all actors in the entire portfolio.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;lead – The picks shown represent all lead actors in the entire portfolio.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;minion – The picks shown are all immediate minions for the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|showsortset&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the sort set to be used for sequencing the items that exist within the table. If empty, all objects are sorted by name. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showgapx&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the X-axis to insert between items that exist within the table. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|showgapy&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the Y-axis to insert between items that exist within the table. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|columns&lt;br /&gt;
|(Optional) Integer – Specifies the number of columns of data to display within the table. Default: &amp;quot;1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|scrollable&lt;br /&gt;
|(Optional) Boolean – Indicates whether the table contents can be scrolled by the user. By default, a scroller is shown whenever the number of items exceeds the visible space, but you can disable this behavior. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|headertemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be used for a header item that appears at the top of the table. This allows you to add column headers above various pieces of information in the table. If empty, the &amp;quot;headertitle&amp;quot; element dictates whether a header is displayed above the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|headerpick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that is associated with the header item at the top of the table. HL will retrieve any pick based on this thing that exists within the target container and use it. This allows you to control what fields can be accessed from the &amp;quot;headertemplate&amp;quot;. If empty, the &amp;quot;actor&amp;quot; pick is used, except within a gizmo, where its &amp;quot;defaultthing&amp;quot; is used instead. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|footertemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be used for a footer at the bottom of the table. This allows you to put information at the bottom of the table that is always tied to the table for sizing and positioning purposes. If empty, no footer is displayed for the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showfixedlast&lt;br /&gt;
|(Optional) Boolean – Indicates whether all non-deletable picks within the table are sorted to the end of the list of picks shown. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|allowuserorder&lt;br /&gt;
|(Optional) Boolean – Indicates whether the items in the table can be re-ordered by the user. If enabled, the specified component must designate a suitable ordering field or a separate component with such a field must be specified via the &amp;quot;ordercomponent&amp;quot; attribute. Default: &amp;quot;no&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note}}Verify that whatever sort set you use for showing the items includes the designated ordering field as its first sort key.&lt;br /&gt;
|-&lt;br /&gt;
|ordercomponent&lt;br /&gt;
|(Optional) Id – Specifies the unique id of an alternate component that possesses a suitable ordering field. This attribute is only applicable when the table supports user ordering. If empty, the ordering field is dictated by the component associated with the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|alwaysupdate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the table must be dynamically updated after any modification to the actor so that the influence of other changes are always visually reflected to the user. Default: &amp;quot;no&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note}}This option can significantly slow down display updates on slower computers, so only enable this if truly necessary.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;table_fixed&amp;quot; element also possesses child elements that define additional behaviors of the portal. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#list|list]]&lt;br /&gt;
|An optional &amp;quot;list&amp;quot; element may appear as defined by the given link. This element defines a [[List Tag Expression]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#headertitle|headertitle]]&lt;br /&gt;
|An optional &amp;quot;headertitle&amp;quot; element may appear as defined by the given link. This element defines a [[HeaderTitle Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;list&amp;quot; Element{{anchor|list}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;list&amp;quot; element defines a [[List Tag Expression]] for the portal that limits the set of picks that are shown. Regardless of this tag expression, all picks added via this portal are always shown within it, enabling deletion of any object added through the table. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the List tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;headertitle&amp;quot; Element{{anchor|headertitle}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;headertitle&amp;quot; element defines a [[HeaderTitle Script]] for the portal that synthesizes the text to be displayed at the top of the table as a header. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the HeaderTitle script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
The following example demonstrates what a fixed table portal might look like. All default values are assumed for optional attributes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;portal id=&amp;quot;baAttrib&amp;quot; style=&amp;quot;tblInvis&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;table_fixed component=&amp;quot;Attribute&amp;quot; scrollable=&amp;quot;no&amp;quot;&lt;br /&gt;
      showtemplate=&amp;quot;baAttrPick&amp;quot; showsortset=&amp;quot;explicit&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;headertitle&amp;gt;&lt;br /&gt;
      @text = &amp;quot;Attributes&amp;quot;&lt;br /&gt;
      &amp;lt;/headertitle&amp;gt;&lt;br /&gt;
    &amp;lt;/table_fixed&amp;gt;&lt;br /&gt;
  &amp;lt;/portal&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=TableFixed_Element_(Data)&amp;diff=3190</id>
		<title>TableFixed Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=TableFixed_Element_(Data)&amp;diff=3190"/>
		<updated>2017-11-10T21:33:56Z</updated>

		<summary type="html">&lt;p&gt;Colen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference|Portal Element (Data)}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;table_fixed&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
Fixed tables present a list of items to the user that cannot be modified by the user through the table. This is ideal for displaying a list of character attributes or a summary of the special abilities possessed by a character. Since they cannot be modified, fixed tables have only a set of behaviors for showing the selected items to the user. Each fixed table is defined via the use of the &amp;quot;table_fixed&amp;quot; element. The complete list of attributes for this element is below.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|component&lt;br /&gt;
|Id – Specifies the unique id of the component that all shown objects must be derived from. &lt;br /&gt;
|-&lt;br /&gt;
|usetabledef&lt;br /&gt;
|(Optional) Id – Specifies the [[TableDef Element (Data)|TableDef]] to reference for selection details of this chooser. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|showtemplate&lt;br /&gt;
|Id – Specifies the unique id of the template to be used for displaying the picks that have been added to the table.&lt;br /&gt;
|-&lt;br /&gt;
|showpicks&lt;br /&gt;
|(Optional) Set – Designates the source from which the picks shown are retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The picks shown are from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The picks shown are from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;actor – The picks shown represent all actors in the entire portfolio.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;lead – The picks shown represent all lead actors in the entire portfolio.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;minion – The picks shown are all immediate minions for the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|showsortset&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the sort set to be used for sequencing the items that exist within the table. If empty, all objects are sorted by name. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showgapx&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the X-axis to insert between items that exist within the table. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|showgapy&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the Y-axis to insert between items that exist within the table. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|columns&lt;br /&gt;
|(Optional) Integer – Specifies the number of columns of data to display within the table. Default: &amp;quot;1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|scrollable&lt;br /&gt;
|(Optional) Boolean – Indicates whether the table contents can be scrolled by the user. By default, a scroller is shown whenever the number of items exceeds the visible space, but you can disable this behavior. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|headertemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be used for a header item that appears at the top of the table. This allows you to add column headers above various pieces of information in the table. If empty, the &amp;quot;headertitle&amp;quot; element dictates whether a header is displayed above the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|headerpick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that is associated with the header item at the top of the table. HL will retrieve any pick based on this thing that exists within the target container and use it. This allows you to control what fields can be accessed from the &amp;quot;headertemplate&amp;quot;. If empty, the &amp;quot;actor&amp;quot; pick is used, except within a gizmo, where its &amp;quot;defaultthing&amp;quot; is used instead. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|footertemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be used for a footer at the bottom of the table. This allows you to put information at the bottom of the table that is always tied to the table for sizing and positioning purposes. If empty, no footer is displayed for the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showfixedlast&lt;br /&gt;
|(Optional) Boolean – Indicates whether all non-deletable picks within the table are sorted to the end of the list of picks shown. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|allowuserorder&lt;br /&gt;
|(Optional) Boolean – Indicates whether the items in the table can be re-ordered by the user. If enabled, the specified component must designate a suitable ordering field or a separate component with such a field must be specified via the &amp;quot;ordercomponent&amp;quot; attribute. Default: &amp;quot;no&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note}}Verify that whatever sort set you use for showing the items includes the designated ordering field as its first sort key.&lt;br /&gt;
|-&lt;br /&gt;
|ordercomponent&lt;br /&gt;
|(Optional) Id – Specifies the unique id of an alternate component that possesses a suitable ordering field. This attribute is only applicable when the table supports user ordering. If empty, the ordering field is dictated by the component associated with the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|alwaysupdate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the table must be dynamically updated after any modification to the actor so that the influence of other changes are always visually reflected to the user. Default: &amp;quot;no&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note}}This option can significantly slow down display updates on slower computers, so only enable this if truly necessary.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;table_fixed&amp;quot; element also possesses child elements that define additional behaviors of the portal. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#list|list]]&lt;br /&gt;
|An optional &amp;quot;list&amp;quot; element may appear as defined by the given link. This element defines a [[List Tag Expression]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#headertitle|headertitle]]&lt;br /&gt;
|An optional &amp;quot;headertitle&amp;quot; element may appear as defined by the given link. This element defines a [[HeaderTitle Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;list&amp;quot; Element{{anchor|list}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;list&amp;quot; element defines a [[List Tag Expression]] for the portal that limits the set of picks that are shown. Regardless of this tag expression, all picks added via this portal are always shown within it, enabling deletion of any object added through the table. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the List tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;headertitle&amp;quot; Element{{anchor|headertitle}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;headertitle&amp;quot; element defines a [[HeaderTitle Script]] for the portal that synthesizes the text to be displayed at the top of the table as a header. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the HeaderTitle script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
The following example demonstrates what a fixed table portal might look like. All default values are assumed for optional attributes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;portal id=&amp;quot;baAttrib&amp;quot; style=&amp;quot;tblInvis&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;table_fixed component=&amp;quot;Attribute&amp;quot; scrollable=&amp;quot;no&amp;quot;&lt;br /&gt;
      showtemplate=&amp;quot;baAttrPick&amp;quot; showsortset=&amp;quot;explicit&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;headertitle&amp;gt;&lt;br /&gt;
      @text = &amp;quot;Attributes&amp;quot;&lt;br /&gt;
      &amp;lt;/headertitle&amp;gt;&lt;br /&gt;
    &amp;lt;/table_fixed&amp;gt;&lt;br /&gt;
  &amp;lt;/portal&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=TableDynamic_Element_(Data)&amp;diff=3189</id>
		<title>TableDynamic Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=TableDynamic_Element_(Data)&amp;diff=3189"/>
		<updated>2017-11-10T21:33:30Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* The &amp;quot;table_dynamic&amp;quot; Element */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference|Portal Element (Data)}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;table_dynamic&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
Dynamic tables allow the user to select the items to be added to the table. As such, they effectively have one set of behaviors for showing the selected items and a separate set of behaviors for selecting the items. A choose form is used to present the list of available items for selection, which allows for detailed information to be shown for each item. When things are added to a table, a new pick is added to the container that is derived from the selected thing. Each dynamic table is defined via the use of the &amp;quot;table_dynamic&amp;quot; element. The complete list of attributes for this element is below.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|component&lt;br /&gt;
|Id – Specifies the unique id of the component that all objects must be derived from, both selectable and shown within the table. &lt;br /&gt;
|-&lt;br /&gt;
|usetabledef&lt;br /&gt;
|(Optional) Id – Specifies the [[TableDef Element (Data)|TableDef]] to reference for details of this table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|showtemplate&lt;br /&gt;
|Id – Specifies the unique id of the template to be used for displaying the picks that have been added to the table.&lt;br /&gt;
|-&lt;br /&gt;
|showsortset&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the sort set to be used for sequencing the items that exist within the table. If empty, all objects are sorted by name. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showgapx&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the X-axis to insert between items that exist within the table. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|showgapy&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the Y-axis to insert between items that exist within the table. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|choosetemplate&lt;br /&gt;
|Id – Specifies the unique id of the template to be used for displaying available objects that the user can choose from.&lt;br /&gt;
|-&lt;br /&gt;
|choosepicks&lt;br /&gt;
|(Optional) Set – Designates whether the selectable objects consist of things or picks, and, if the latter, where the list of picks is retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;thing – The selectable objects are things.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The selectable objects are picks from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The selectable objects are picks from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;thing&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|choosesortset&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the sort set to be used for sequencing all of the objects presented for selection. If empty, all objects are sorted by name. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|choosegapx&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the X-axis to insert between items presented for selection. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|choosegapy&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the Y-axis to insert between items presented for selection. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|descwidth&lt;br /&gt;
|(Optional) Integer – Specifies the width of the reserved &amp;quot;description&amp;quot; area on the right within the choose form. Some items need more width for lengthy descriptions and some do not, so you can control this as you see fit. Default: &amp;quot;250&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|columns&lt;br /&gt;
|(Optional) Integer – Specifies the number of columns of data to display within the table. Default: &amp;quot;1&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|scrollable&lt;br /&gt;
|(Optional) Boolean – Indicates whether the table contents can be scrolled by the user. By default, a scroller is shown whenever the number of items exceeds the visible space, but you can disable this behavior. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|ismultiadd&lt;br /&gt;
|(Optional) Boolean – Indicates whether the user can add multiple items at a time to the table, without leaving the choose form. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|allowstack&lt;br /&gt;
|(Optional) Boolean – Indicates whether the user is allowed to stack items within the table, subject to the restrictions imposed for each item. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|addtemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be used for the &amp;quot;add&amp;quot; item that always appears at the bottom of a dynamic table and that users will click on to add an item to the table. This allows detailed controlled when the simple &amp;quot;additem&amp;quot; script is not sufficient. If empty, the &amp;quot;additem&amp;quot; element must be specified. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|addpick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that is associated with the &amp;quot;add&amp;quot; item at the bottom of the table. HL will retrieve any pick based on this thing that exists within the target container and use it. This allows you to control what fields can be accessed from the &amp;quot;addtemplate&amp;quot;. If empty, the &amp;quot;actor&amp;quot; pick is used, except within a gizmo, where its &amp;quot;defaultthing&amp;quot; is used instead. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|addspace&lt;br /&gt;
|(Optional) Integer – Specifies the additional vertical space to be inserted when displaying the simple &amp;quot;add&amp;quot; item at the bottom of the table by using the &amp;quot;additem&amp;quot; script. The height of the item is based on the font height of the text shown, so this attribute allows you to insert additional padding if you wish. Default: &amp;quot;2&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|headertemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be used for a header item that appears at the top of the table. This allows you to add column headers above various pieces of information in the table. If empty, the &amp;quot;headertitle&amp;quot; element dictates whether a header is displayed above the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|headerpick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that is associated with the header item at the top of the table. HL will retrieve any pick based on this thing that exists within the target container and use it. This allows you to control what fields can be accessed from the &amp;quot;headertemplate&amp;quot;. If empty, the &amp;quot;actor&amp;quot; pick is used, except within a gizmo, where its &amp;quot;defaultthing&amp;quot; is used instead. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|buytemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be shown in the lower right corner of the choose form for controlling the details of a purchase transaction. If empty, no buy template is utilized. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|xactspecial&lt;br /&gt;
|(Optional) Integer – When a buy template is shared between two or more portals or things, the template behavior may need to be tailored based on the usage. If this need arises, this attribute specifies a unique value that identifies this particular usage. By assigning a different value to each usage and keying on it within the template&#039;s Position script, you can tailor the template appropriately. Default: &amp;quot;0&amp;quot;. &lt;br /&gt;
|-&lt;br /&gt;
|selltemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be shown when the user attempts to delete an item. This allows you to enable the selling of items for money. If empty, no sell template is utilized. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatepick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a pick that will contain a dynamically generated [[Candidate Tag Expression|Candidate tag expression]] for use in determining the list of available objects to choose from. If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatefield&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a text-based field that contains the [[Candidate Tag Expression|Candidate tag expression]] used to determine the list of available objects to choose from. This field must exist within the pick identified by the &amp;quot;candidatepick&amp;quot; attribute (above). If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|prereqtarget&lt;br /&gt;
|(Optional) Set – Designates the container against which all pre-requisite tests need to be performed when determining the list of items available for selection. When displacement is utilized, pre-requisites need to be tested against the container to which the new picks will ultimately be added. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The default parent container is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;parent – The next parent up the hierarchy is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The top-level hero is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|empty&lt;br /&gt;
|(Optional) Text – Specifies the text message to be displayed if the user attempts to select an option and there are no available items to choose from. If empty, a default message is displayed. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showfrozenfixed&lt;br /&gt;
|(Optional) Boolean – Indicates whether the table must be converted to a &amp;quot;fixed&amp;quot; table whenever the table is designated as frozen. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|showfixedlast&lt;br /&gt;
|(Optional) Boolean – Indicates whether all non-deletable picks within the table are sorted to the end of the list of picks shown. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|allowuserorder&lt;br /&gt;
|(Optional) Boolean – Indicates whether the items in the table can be re-ordered by the user. If enabled, the specified component must designate a suitable ordering field or a separate component with such a field must be specified via the &amp;quot;ordercomponent&amp;quot; attribute. Default: &amp;quot;no&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note}}Verify that whatever sort set you use for showing the items includes the designated ordering field as its first sort key.&lt;br /&gt;
|-&lt;br /&gt;
|ordercomponent&lt;br /&gt;
|(Optional) Id – Specifies the unique id of an alternate component that possesses a suitable ordering field. This attribute is only applicable when the table supports user ordering. If empty, the ordering field is dictated by the component associated with the table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|linkage&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that will be used as a linkage. When a new pick is added to the table, that pick has an automatic linkage setup to any existing pick derived from the specified thing. If no derived pick exists when the new pick is added, no linkage is ever created. If empty, no linkage is established. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|alwaysupdate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the table must be dynamically updated after any modification to the actor so that the influence of other changes are always visually reflected to the user. Default: &amp;quot;no&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note}}This option can significantly slow down display updates on slower computers, so only enable this if truly necessary.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;table_dynamic&amp;quot; element also possesses child elements that define additional behaviors of the portal. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#list|list]]&lt;br /&gt;
|An optional &amp;quot;list&amp;quot; element may appear as defined by the given link. This element defines a [[List Tag Expression]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#candidate|candidate]]&lt;br /&gt;
|An optional &amp;quot;candidate&amp;quot; element may appear as defined by the given link. This element defines a [[Candidate Tag Expression]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#restriction|restriction]]&lt;br /&gt;
|An optional &amp;quot;restriction&amp;quot; element may appear as defined by the given link. This element defines a [[Restriction Tag Expression]] for the portal that identifies things which cannot be selected if they&#039;ve already been added to this table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#needtag|needtag]]&lt;br /&gt;
|Zero or more &amp;quot;needtag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#denytag|denytag]]&lt;br /&gt;
|Zero or more &amp;quot;denytag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#xacttag|xacttag]]&lt;br /&gt;
|Zero or more &amp;quot;xacttag&amp;quot; elements may appear as defined by the given link. This element defines a tag that is assigned to the transaction pick while the choose form is visible.&lt;br /&gt;
|-&lt;br /&gt;
|[[#secondary|secondary]]&lt;br /&gt;
|An optional &amp;quot;secondary&amp;quot; element may appear as defined by the given link. This element defines a [[Secondary Tag Expression]] that is associated with every new pick added via the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#existence|existence]]&lt;br /&gt;
|An optional &amp;quot;existence&amp;quot; element may appear as defined by the given link. This element defines an [[Existence Tag Expression]] that is associated with every new pick added via the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoTag Element (Data)|autotag]]&lt;br /&gt;
|Zero or more &amp;quot;autotag&amp;quot; elements may appear as defined by the given link. This element specifies tags that are automatically assigned to each added thing.&lt;br /&gt;
|-&lt;br /&gt;
|[[#chosen|chosen]]&lt;br /&gt;
|An optional &amp;quot;chosen&amp;quot; element may appear as defined by the given link. This element defines a [[Chosen Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#titlebar|titlebar]]&lt;br /&gt;
|An optional &amp;quot;titlebar&amp;quot; element may appear as defined by the given link. This element defines a [[TitleBar Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#description|description]]&lt;br /&gt;
|An optional &amp;quot;description&amp;quot; element may appear as defined by the given link. This element defines a [[Description Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#headertitle|headertitle]]&lt;br /&gt;
|An optional &amp;quot;headertitle&amp;quot; element may appear as defined by the given link. This element defines a [[HeaderTitle Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#additem|additem]]&lt;br /&gt;
|An optional &amp;quot;additem&amp;quot; element may appear as defined by the given link. This element defines a [[AddItem Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;list&amp;quot; Element{{anchor|list}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;list&amp;quot; element defines a [[List Tag Expression]] for the portal that limits the set of picks that are shown. Regardless of this tag expression, all picks added via this portal are always shown within it, enabling deletion of any object added through the table. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the List tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;candidate&amp;quot; Element{{anchor|candidate}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;candidate&amp;quot; element defines a [[Candidate Tag Expression]] for the portal that limits the set of things/picks that are available for selection. If this element is omitted entirely, then the items available for selection must satisfy the List tag expression instead (above). The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|inheritlist&lt;br /&gt;
|(Optional) Boolean – Indicates whether the List tag expression (above) is automatically inherited into the Candidate tag expression. If inherited, all available objects must satisfy both the Candidate tag expressions and the List tag expression. This eliminates the need to redundantly maintain the same filter logic within both tag expressions. If not inherited, then the Candidate tag expression supersedes the List tag expression. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Candidate tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;restriction&amp;quot; Element{{anchor|restriction}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;restriction&amp;quot; element defines a [[Restriction Tag Expression]] for the portal that further limits the set of things/picks that are available for selection. This tag expression is compared against all picks that have already been added to &#039;&#039;&#039;this table&#039;&#039;&#039;. Any object that already exists within the table is precluded from being selected again, resulting in it being omitted from the list of available choices. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Restriction tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;needtag&amp;quot; Element{{anchor|needtag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;needtag&amp;quot; element defines a tag relationship that must exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it has at least one matching tag with the same id in a separate tag group. If the tag is not found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;denytag&amp;quot; Element{{anchor|denytag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;denytag&amp;quot; element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it does not possess any matching tags with the same ids in a separate tag group. If any matching tags are found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;xacttag&amp;quot; Element{{anchor|xacttag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;xacttag&amp;quot; element specifies a tag that is automatically added to the transaction pick while the choose form is shown. These tags allow you to indicate contextual information about where the buy template is being used so that you can tailor the behavior appropriately. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|tag&lt;br /&gt;
|Id – Specifies the unique id of the tag to define within the tag group &amp;quot;transact&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;secondary&amp;quot; Element{{anchor|secondary}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;secondary&amp;quot; element defines a [[Secondary Tag Expression]] that is automatically associated with every new pick added via the portal. This new tag expression is treated like an additional [[Container Tag Expression]] for the pick that must also be satisfied. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;existence&amp;quot; Element{{anchor|existence}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;existence&amp;quot; element defines an [[Existence Tag Expression]] that is automatically associated with every new pick added via the portal. If a pick ever fails to satisfy the tag expression during an evaluation cycle, the pick is automatically deleted. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;chosen&amp;quot; Element{{anchor|chosen}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;chosen&amp;quot; element defines a [[Chosen Script]] for the portal, which synthesizes the text to be displayed as the chosen item within the portal. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Chosen script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;titlebar&amp;quot; Element{{anchor|titlebar}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;titlebar&amp;quot; element defines a [[TitleBar Script]] for the portal, which synthesizes the text to be displayed at the top of the choose form. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the TitleBar script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;description&amp;quot; Element{{anchor|description}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;description&amp;quot; element defines a [[Description Script]] for the portal, which synthesizes the text to be displayed within the description region of the choose form for the currently selected item on the left. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Description script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;headertitle&amp;quot; Element{{anchor|headertitle}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;headertitle&amp;quot; element defines a [[HeaderTitle Script]] for the portal that synthesizes the text to be displayed at the top of the table as a header. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the HeaderTitle script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;additem&amp;quot; Element{{anchor|additem}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;additem&amp;quot; element defines a [[AddItem Script]] for the portal that synthesizes the text to be displayed within the &amp;quot;add&amp;quot; item at the bottom of the table, where the user will click to add a new item. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the AddItem script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
The following example demonstrates what a dynamic table portal might look like. All default values are assumed for optional attributes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;portal id=&amp;quot;arMelee&amp;quot; style=&amp;quot;tblNormal&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;table_dynamic component=&amp;quot;Gear&amp;quot;&lt;br /&gt;
      showtemplate=&amp;quot;arWpnPick&amp;quot; choosetemplate=&amp;quot;arWpnThing&amp;quot;&lt;br /&gt;
      buytemplate=&amp;quot;BuyCash&amp;quot; selltemplate=&amp;quot;SellCash&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;list&amp;gt;component.WeapMelee&amp;lt;/list&amp;gt;&lt;br /&gt;
    &amp;lt;candidate&amp;gt;!Equipment.Natural&amp;lt;/candidate&amp;gt;&lt;br /&gt;
    &amp;lt;description/&amp;gt;&lt;br /&gt;
    &amp;lt;headertitle&amp;gt;&lt;br /&gt;
      @text = &amp;quot;Melee Weapons&amp;quot;&lt;br /&gt;
      &amp;lt;/headertitle&amp;gt;&lt;br /&gt;
    &amp;lt;additem&amp;gt;&lt;br /&gt;
      @text = &amp;quot;Add New Melee Weapons&amp;quot;&lt;br /&gt;
      &amp;lt;/additem&amp;gt;&lt;br /&gt;
    &amp;lt;/table_dynamic&amp;gt;&lt;br /&gt;
  &amp;lt;/portal&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3188</id>
		<title>TableDef Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3188"/>
		<updated>2017-11-10T21:32:15Z</updated>

		<summary type="html">&lt;p&gt;Colen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;tabledef&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
Note that for a tabledef to be associated with a table or chooser portal, you must specify the id of the tabledef for the portal&#039;s &amp;quot;usetabledef&amp;quot; attribute.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|id&lt;br /&gt;
|Id – Specifies the unique id of the tabledef.&lt;br /&gt;
|-&lt;br /&gt;
|component&lt;br /&gt;
|Id – Specifies the unique id of the component the tabledef is associated with. Like a table portal, only things / picks from this component will be shown in the table.&lt;br /&gt;
|-&lt;br /&gt;
|isglobal&lt;br /&gt;
|(Optional) Boolean – if the table is used by ALL characters for the game system, specify &amp;quot;yes&amp;quot;. If this is specified, you don&#039;t need to add &amp;quot;allowtable&amp;quot; tags for this table, as it&#039;s assumed to be present on all characters. This is unlikely to be true for game systems with multiple different types of characters, like Pathfinder (NPCs, kingdoms, armies, etc), so don&#039;t specify this unless every single character for the game system will need it. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|description&lt;br /&gt;
|Text – A short string intended to communicate what the table does (in very general terms, like &amp;quot;Adds magic weapons&amp;quot;) to the UI developers.&lt;br /&gt;
|-&lt;br /&gt;
|errorcategory&lt;br /&gt;
|(Optional) Unique id – indicates that this table is only marked as invalid if picks showing in it have an error of this category. If this attribute isn&#039;t set, the table will be marked as invalid if any pick in the table has an error.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;tabledef&amp;quot; element also possesses two child elements that define the specifics of the table. Both of these child elements are optional.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|select&lt;br /&gt;
|Contains details about the selection of new picks for this table. If the table can&#039;t select new picks (for example, if it&#039;s a fixed table), this should be omitted.&lt;br /&gt;
|-&lt;br /&gt;
|show&lt;br /&gt;
|Contains details about the picks shown in this table. Can be omitted if nothing interesting needs to be specified (for example, if the table has no list expression).&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;select&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|choosepicks&lt;br /&gt;
|(Optional) Set – Designates whether the selectable objects consist of things or picks, and, if the latter, where the list of picks is retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;thing – The selectable objects are things.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The selectable objects are picks from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The selectable objects are picks from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;thing&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|buyaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when purchasing items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|sellaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when selling items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|wrapupaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use after adding items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|linkage&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that will be used as a linkage. When a new pick is added to the table, that pick has an automatic linkage setup to any existing pick derived from the specified thing. If no derived pick exists when the new pick is added, no linkage is ever created. If empty, no linkage is established. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatepick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a pick that will contain a dynamically generated [[Candidate Tag Expression|Candidate tag expression]] for use in determining the list of available objects to choose from. If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatefield&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a text-based field that contains the [[Candidate Tag Expression|Candidate tag expression]] used to determine the list of available objects to choose from. This field must exist within the pick identified by the &amp;quot;candidatepick&amp;quot; attribute (above). If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|existphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|existprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|prereqtarget&lt;br /&gt;
|(Optional) Set – Designates the container against which all pre-requisite tests need to be performed when determining the list of items available for selection. When displacement is utilized, pre-requisites need to be tested against the container to which the new picks will ultimately be added. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The default parent container is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;parent – The next parent up the hierarchy is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The top-level hero is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|empty&lt;br /&gt;
|(Optional) Text – Specifies the text message to be displayed if the user attempts to select an option and there are no available items to choose from. If empty, a default message is displayed. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|useagentcandidate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the candidatepick of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|useagentlinkage&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the linkage of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentautotag&lt;br /&gt;
|(Optional) Id – Specifies the tag group of the agent pick&#039;s identity tag which will be added to picks added to this table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|maxchoicelimit&lt;br /&gt;
|(Optional) Number – How many picks can be added to this table. Default: no limit.&lt;br /&gt;
|-&lt;br /&gt;
|transactiontype&lt;br /&gt;
|Text – a short string, typically a single word, intended to communicate what sort of &amp;quot;purchase&amp;quot; the table typically makes. For example, any table in Pathfinder that allows you to buy gear might specify &amp;quot;money&amp;quot; for this attribute, indicating that money is generally used to buy the gear it contains, while the &amp;quot;Vanities&amp;quot; table might specify &amp;quot;prestige&amp;quot; instead, to indicate that the items within are generally bought with prestige.&lt;br /&gt;
|-&lt;br /&gt;
|autothing&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the thing to be added to the table whenever the user wants to add a pick. Use this if only a single thing can ever be added to the table.&lt;br /&gt;
|-&lt;br /&gt;
|selectnone&lt;br /&gt;
|(Optional) Boolean – Indicates whether it&#039;s valid to have no selection in this chooser. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;select&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#candidate|candidate]]&lt;br /&gt;
|An optional &amp;quot;candidate&amp;quot; element may appear as defined by the given link. This element defines a [[Candidate Tag Expression]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#restriction|restriction]]&lt;br /&gt;
|An optional &amp;quot;restriction&amp;quot; element may appear as defined by the given link. This element defines a [[Restriction Tag Expression]] for the table that identifies things which cannot be selected if they&#039;ve already been added to this table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#needtag|needtag]]&lt;br /&gt;
|Zero or more &amp;quot;needtag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#denytag|denytag]]&lt;br /&gt;
|Zero or more &amp;quot;denytag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#secondary|secondary]]&lt;br /&gt;
|An optional &amp;quot;secondary&amp;quot; element may appear as defined by the given link. This element defines a [[Secondary Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#existence|existence]]&lt;br /&gt;
|An optional &amp;quot;existence&amp;quot; element may appear as defined by the given link. This element defines an [[Existence Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoTag Element (Data)|autotag]]&lt;br /&gt;
|Zero or more &amp;quot;autotag&amp;quot; elements may appear as defined by the given link. This element specifies tags that are automatically assigned to each added thing.&lt;br /&gt;
|-&lt;br /&gt;
|[[IgnoreRequirements Element (Data)|ignorerequirements]]&lt;br /&gt;
|An optional &amp;quot;ignorerequirements&amp;quot; element may appear as defined by the given link. This element specifies circumstances under which pre-reqs for things and picks in this table are ignored.&lt;br /&gt;
|-&lt;br /&gt;
|[[#change|change]]&lt;br /&gt;
|An optional &amp;quot;change&amp;quot; element may appear as defined by the given link. This element defines a [[Change Script]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;show&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|allowstack&lt;br /&gt;
|(Optional) Boolean – Indicates whether the user is allowed to stack items within the table, subject to the restrictions imposed for each item. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentlist&lt;br /&gt;
|(Optional) Id – If set to a tag group id, only picks with the agent pick&#039;s identity tag from that group are shown in the table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|allowmove&lt;br /&gt;
|(Optional) Boolean – Indicates whether picks in this table can be moved out of this table, if the user drags them around. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|listpick&lt;br /&gt;
|(Optional) Id – Unique id of the pick to take the table&#039;s list expression from (see listfield, below). Note that this does not work when used with portals. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|listfield&lt;br /&gt;
|(Optional) Id – Unique id of the field to take the table&#039;s list expression from (see listpick, above). Note that this does not work when used with portals. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;show&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#list|list]]&lt;br /&gt;
|An optional &amp;quot;list&amp;quot; element may appear as defined by the given link. This element defines a [[List Tag Expression]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;list&amp;quot; Element{{anchor|list}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;list&amp;quot; element defines a [[List Tag Expression]] for the table that limits the set of picks that are shown. Regardless of this tag expression, all picks added via this table are always shown within it, enabling deletion of any object added through the table. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the List tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;candidate&amp;quot; Element{{anchor|candidate}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;candidate&amp;quot; element defines a [[Candidate Tag Expression]] for the table that limits the set of things/picks that are available for selection. If this element is omitted entirely, then the items available for selection must satisfy the List tag expression instead (above). The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|inheritlist&lt;br /&gt;
|(Optional) Boolean – Indicates whether the List tag expression (above) is automatically inherited into the Candidate tag expression. If inherited, all available objects must satisfy both the Candidate tag expressions and the List tag expression. This eliminates the need to redundantly maintain the same filter logic within both tag expressions. If not inherited, then the Candidate tag expression supersedes the List tag expression. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Candidate tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;restriction&amp;quot; Element{{anchor|restriction}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;restriction&amp;quot; element defines a [[Restriction Tag Expression]] for the table that further limits the set of things/picks that are available for selection. This tag expression is compared against all picks that have already been added to &#039;&#039;&#039;this table&#039;&#039;&#039;. Any object that already exists within the table is precluded from being selected again, resulting in it being omitted from the list of available choices. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Restriction tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;needtag&amp;quot; Element{{anchor|needtag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;needtag&amp;quot; element defines a tag relationship that must exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it has at least one matching tag with the same id in a separate tag group. If the tag is not found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;denytag&amp;quot; Element{{anchor|denytag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;denytag&amp;quot; element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it does not possess any matching tags with the same ids in a separate tag group. If any matching tags are found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;secondary&amp;quot; Element{{anchor|secondary}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;secondary&amp;quot; element defines a [[Secondary Tag Expression]] that is automatically associated with every new pick added via the table. This new tag expression is treated like an additional [[Container Tag Expression]] for the pick that must also be satisfied. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;existence&amp;quot; Element{{anchor|existence}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;existence&amp;quot; element defines an [[Existence Tag Expression]] that is automatically associated with every new pick added via the table. If a pick ever fails to satisfy the tag expression during an evaluation cycle, the pick is automatically deleted. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;change&amp;quot; Element{{anchor|change}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;change&amp;quot; element defines a [[Change Script]] for the table that is invoked whenever the user selects a new choice from the list of options. This script allows the implications of the new selection to be integrated and the display updated. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Change script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3187</id>
		<title>TableDef Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3187"/>
		<updated>2017-11-10T21:22:02Z</updated>

		<summary type="html">&lt;p&gt;Colen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;tabledef&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|id&lt;br /&gt;
|Id – Specifies the unique id of the tabledef.&lt;br /&gt;
|-&lt;br /&gt;
|component&lt;br /&gt;
|Id – Specifies the unique id of the component the tabledef is associated with. Like a table portal, only things / picks from this component will be shown in the table.&lt;br /&gt;
|-&lt;br /&gt;
|isglobal&lt;br /&gt;
|(Optional) Boolean – if the table is used by ALL characters for the game system, specify &amp;quot;yes&amp;quot;. If this is specified, you don&#039;t need to add &amp;quot;allowtable&amp;quot; tags for this table, as it&#039;s assumed to be present on all characters. This is unlikely to be true for game systems with multiple different types of characters, like Pathfinder (NPCs, kingdoms, armies, etc), so don&#039;t specify this unless every single character for the game system will need it. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|description&lt;br /&gt;
|Text – A short string intended to communicate what the table does (in very general terms, like &amp;quot;Adds magic weapons&amp;quot;) to the UI developers.&lt;br /&gt;
|-&lt;br /&gt;
|errorcategory&lt;br /&gt;
|(Optional) Unique id – indicates that this table is only marked as invalid if picks showing in it have an error of this category. If this attribute isn&#039;t set, the table will be marked as invalid if any pick in the table has an error.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;tabledef&amp;quot; element also possesses two child elements that define the specifics of the table. Both of these child elements are optional.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|select&lt;br /&gt;
|Contains details about the selection of new picks for this table. If the table can&#039;t select new picks (for example, if it&#039;s a fixed table), this should be omitted.&lt;br /&gt;
|-&lt;br /&gt;
|show&lt;br /&gt;
|Contains details about the picks shown in this table. Can be omitted if nothing interesting needs to be specified (for example, if the table has no list expression).&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;select&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|choosepicks&lt;br /&gt;
|(Optional) Set – Designates whether the selectable objects consist of things or picks, and, if the latter, where the list of picks is retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;thing – The selectable objects are things.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The selectable objects are picks from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The selectable objects are picks from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;thing&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|buyaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when purchasing items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|sellaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when selling items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|wrapupaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use after adding items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|linkage&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that will be used as a linkage. When a new pick is added to the table, that pick has an automatic linkage setup to any existing pick derived from the specified thing. If no derived pick exists when the new pick is added, no linkage is ever created. If empty, no linkage is established. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatepick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a pick that will contain a dynamically generated [[Candidate Tag Expression|Candidate tag expression]] for use in determining the list of available objects to choose from. If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatefield&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a text-based field that contains the [[Candidate Tag Expression|Candidate tag expression]] used to determine the list of available objects to choose from. This field must exist within the pick identified by the &amp;quot;candidatepick&amp;quot; attribute (above). If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|existphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|existprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|prereqtarget&lt;br /&gt;
|(Optional) Set – Designates the container against which all pre-requisite tests need to be performed when determining the list of items available for selection. When displacement is utilized, pre-requisites need to be tested against the container to which the new picks will ultimately be added. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The default parent container is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;parent – The next parent up the hierarchy is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The top-level hero is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|empty&lt;br /&gt;
|(Optional) Text – Specifies the text message to be displayed if the user attempts to select an option and there are no available items to choose from. If empty, a default message is displayed. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|useagentcandidate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the candidatepick of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|useagentlinkage&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the linkage of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentautotag&lt;br /&gt;
|(Optional) Id – Specifies the tag group of the agent pick&#039;s identity tag which will be added to picks added to this table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|maxchoicelimit&lt;br /&gt;
|(Optional) Number – How many picks can be added to this table. Default: no limit.&lt;br /&gt;
|-&lt;br /&gt;
|transactiontype&lt;br /&gt;
|Text – a short string, typically a single word, intended to communicate what sort of &amp;quot;purchase&amp;quot; the table typically makes. For example, any table in Pathfinder that allows you to buy gear might specify &amp;quot;money&amp;quot; for this attribute, indicating that money is generally used to buy the gear it contains, while the &amp;quot;Vanities&amp;quot; table might specify &amp;quot;prestige&amp;quot; instead, to indicate that the items within are generally bought with prestige.&lt;br /&gt;
|-&lt;br /&gt;
|autothing&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the thing to be added to the table whenever the user wants to add a pick. Use this if only a single thing can ever be added to the table.&lt;br /&gt;
|-&lt;br /&gt;
|selectnone&lt;br /&gt;
|(Optional) Boolean – Indicates whether it&#039;s valid to have no selection in this chooser. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;select&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#candidate|candidate]]&lt;br /&gt;
|An optional &amp;quot;candidate&amp;quot; element may appear as defined by the given link. This element defines a [[Candidate Tag Expression]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#restriction|restriction]]&lt;br /&gt;
|An optional &amp;quot;restriction&amp;quot; element may appear as defined by the given link. This element defines a [[Restriction Tag Expression]] for the table that identifies things which cannot be selected if they&#039;ve already been added to this table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#needtag|needtag]]&lt;br /&gt;
|Zero or more &amp;quot;needtag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#denytag|denytag]]&lt;br /&gt;
|Zero or more &amp;quot;denytag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#secondary|secondary]]&lt;br /&gt;
|An optional &amp;quot;secondary&amp;quot; element may appear as defined by the given link. This element defines a [[Secondary Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#existence|existence]]&lt;br /&gt;
|An optional &amp;quot;existence&amp;quot; element may appear as defined by the given link. This element defines an [[Existence Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoTag Element (Data)|autotag]]&lt;br /&gt;
|Zero or more &amp;quot;autotag&amp;quot; elements may appear as defined by the given link. This element specifies tags that are automatically assigned to each added thing.&lt;br /&gt;
|-&lt;br /&gt;
|[[IgnoreRequirements Element (Data)|ignorerequirements]]&lt;br /&gt;
|An optional &amp;quot;ignorerequirements&amp;quot; element may appear as defined by the given link. This element specifies circumstances under which pre-reqs for things and picks in this table are ignored.&lt;br /&gt;
|-&lt;br /&gt;
|[[#change|change]]&lt;br /&gt;
|An optional &amp;quot;change&amp;quot; element may appear as defined by the given link. This element defines a [[Change Script]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;show&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|allowstack&lt;br /&gt;
|(Optional) Boolean – Indicates whether the user is allowed to stack items within the table, subject to the restrictions imposed for each item. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentlist&lt;br /&gt;
|(Optional) Id – If set to a tag group id, only picks with the agent pick&#039;s identity tag from that group are shown in the table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|allowmove&lt;br /&gt;
|(Optional) Boolean – Indicates whether picks in this table can be moved out of this table, if the user drags them around. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|listpick&lt;br /&gt;
|(Optional) Id – Unique id of the pick to take the table&#039;s list expression from (see listfield, below). Note that this does not work when used with portals. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|listfield&lt;br /&gt;
|(Optional) Id – Unique id of the field to take the table&#039;s list expression from (see listpick, above). Note that this does not work when used with portals. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;show&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#list|list]]&lt;br /&gt;
|An optional &amp;quot;list&amp;quot; element may appear as defined by the given link. This element defines a [[List Tag Expression]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;list&amp;quot; Element{{anchor|list}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;list&amp;quot; element defines a [[List Tag Expression]] for the table that limits the set of picks that are shown. Regardless of this tag expression, all picks added via this table are always shown within it, enabling deletion of any object added through the table. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the List tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;candidate&amp;quot; Element{{anchor|candidate}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;candidate&amp;quot; element defines a [[Candidate Tag Expression]] for the table that limits the set of things/picks that are available for selection. If this element is omitted entirely, then the items available for selection must satisfy the List tag expression instead (above). The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|inheritlist&lt;br /&gt;
|(Optional) Boolean – Indicates whether the List tag expression (above) is automatically inherited into the Candidate tag expression. If inherited, all available objects must satisfy both the Candidate tag expressions and the List tag expression. This eliminates the need to redundantly maintain the same filter logic within both tag expressions. If not inherited, then the Candidate tag expression supersedes the List tag expression. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Candidate tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;restriction&amp;quot; Element{{anchor|restriction}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;restriction&amp;quot; element defines a [[Restriction Tag Expression]] for the table that further limits the set of things/picks that are available for selection. This tag expression is compared against all picks that have already been added to &#039;&#039;&#039;this table&#039;&#039;&#039;. Any object that already exists within the table is precluded from being selected again, resulting in it being omitted from the list of available choices. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Restriction tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;needtag&amp;quot; Element{{anchor|needtag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;needtag&amp;quot; element defines a tag relationship that must exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it has at least one matching tag with the same id in a separate tag group. If the tag is not found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;denytag&amp;quot; Element{{anchor|denytag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;denytag&amp;quot; element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it does not possess any matching tags with the same ids in a separate tag group. If any matching tags are found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;secondary&amp;quot; Element{{anchor|secondary}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;secondary&amp;quot; element defines a [[Secondary Tag Expression]] that is automatically associated with every new pick added via the table. This new tag expression is treated like an additional [[Container Tag Expression]] for the pick that must also be satisfied. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;existence&amp;quot; Element{{anchor|existence}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;existence&amp;quot; element defines an [[Existence Tag Expression]] that is automatically associated with every new pick added via the table. If a pick ever fails to satisfy the tag expression during an evaluation cycle, the pick is automatically deleted. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;change&amp;quot; Element{{anchor|change}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;change&amp;quot; element defines a [[Change Script]] for the table that is invoked whenever the user selects a new choice from the list of options. This script allows the implications of the new selection to be integrated and the display updated. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Change script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3186</id>
		<title>TableDef Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3186"/>
		<updated>2017-11-10T21:16:55Z</updated>

		<summary type="html">&lt;p&gt;Colen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{contextmulti|Kit Reference|Data File Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;tabledef&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|id&lt;br /&gt;
|Id – Specifies the unique id of the tabledef.&lt;br /&gt;
|-&lt;br /&gt;
|component&lt;br /&gt;
|Id – Specifies the unique id of the component the tabledef is associated with. Like a table, only things / picks from this component will be shown in the table.&lt;br /&gt;
|-&lt;br /&gt;
|isglobal&lt;br /&gt;
|(Optional) Boolean – if the table is used by ALL characters for the game system, specify isglobal=&amp;quot;yes&amp;quot;. This is unlikely to be true for game systems with multiple different types of characters, like Pathfinder (NPCs, kingdoms, armies, etc), so don&#039;t specify this unless every single character of any type will need it. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|description&lt;br /&gt;
|Text – A short string intended to communicate what the table does to the UI developers. This is is required for all tabledefs.&lt;br /&gt;
|-&lt;br /&gt;
|errorcategory&lt;br /&gt;
|(Optional) Unique id – indicates that this table is only marked as invalid if picks showing in it have an error of the appropriate category. If this attribute isn&#039;t set, the table will be marked as invalid if any pick in the table has an error. See error categories and table error reporting, below, for more details.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;tabledef&amp;quot; element also possesses child elements that define the specifics of the table. Both of these child elements are optional.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|select&lt;br /&gt;
|Contains details about the selection of new picks for this table. If the table can&#039;t select new picks (for example, if it&#039;s a fixed table), this should be omitted.&lt;br /&gt;
|-&lt;br /&gt;
|show&lt;br /&gt;
|Contains details about the picks shown in this table. Can be omitted if nothing interesting needs to be specified (for example, if the table has no list expression).&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;select&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|choosepicks&lt;br /&gt;
|(Optional) Set – Designates whether the selectable objects consist of things or picks, and, if the latter, where the list of picks is retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;thing – The selectable objects are things.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The selectable objects are picks from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The selectable objects are picks from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;thing&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|buyaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when purchasing items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|sellaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when selling items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|wrapupaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use after adding items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|linkage&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that will be used as a linkage. When a new pick is added to the table, that pick has an automatic linkage setup to any existing pick derived from the specified thing. If no derived pick exists when the new pick is added, no linkage is ever created. If empty, no linkage is established. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatepick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a pick that will contain a dynamically generated [[Candidate Tag Expression|Candidate tag expression]] for use in determining the list of available objects to choose from. If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatefield&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a text-based field that contains the [[Candidate Tag Expression|Candidate tag expression]] used to determine the list of available objects to choose from. This field must exist within the pick identified by the &amp;quot;candidatepick&amp;quot; attribute (above). If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|existphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|existprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|prereqtarget&lt;br /&gt;
|(Optional) Set – Designates the container against which all pre-requisite tests need to be performed when determining the list of items available for selection. When displacement is utilized, pre-requisites need to be tested against the container to which the new picks will ultimately be added. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The default parent container is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;parent – The next parent up the hierarchy is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The top-level hero is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|empty&lt;br /&gt;
|(Optional) Text – Specifies the text message to be displayed if the user attempts to select an option and there are no available items to choose from. If empty, a default message is displayed. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|useagentcandidate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the candidatepick of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|useagentlinkage&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the linkage of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentautotag&lt;br /&gt;
|(Optional) Id – Specifies the tag group of the agent pick&#039;s identity tag which will be added to picks added to this table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|maxchoicelimit&lt;br /&gt;
|(Optional) Number – How many picks can be added to this table. Default: no limit.&lt;br /&gt;
|-&lt;br /&gt;
|transactiontype&lt;br /&gt;
|Text – a short string, typically a single word, intended to communicate what sort of &amp;quot;purchase&amp;quot; the table typically makes. For example, any table in Pathfinder that allows you to buy gear might specify &amp;quot;money&amp;quot; for this attribute, indicating that money is generally used to buy the gear it contains, while the &amp;quot;Vanities&amp;quot; table might specify &amp;quot;prestige&amp;quot; instead, to indicate that the items within are generally bought with prestige.&lt;br /&gt;
|-&lt;br /&gt;
|autothing&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the thing to be added to the table whenever the user wants to add a pick. Use this if only a single thing can ever be added to the table.&lt;br /&gt;
|-&lt;br /&gt;
|selectnone&lt;br /&gt;
|(Optional) Boolean – Indicates whether it&#039;s valid to have no selection in this chooser. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;select&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#candidate|candidate]]&lt;br /&gt;
|An optional &amp;quot;candidate&amp;quot; element may appear as defined by the given link. This element defines a [[Candidate Tag Expression]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#restriction|restriction]]&lt;br /&gt;
|An optional &amp;quot;restriction&amp;quot; element may appear as defined by the given link. This element defines a [[Restriction Tag Expression]] for the table that identifies things which cannot be selected if they&#039;ve already been added to this table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#needtag|needtag]]&lt;br /&gt;
|Zero or more &amp;quot;needtag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#denytag|denytag]]&lt;br /&gt;
|Zero or more &amp;quot;denytag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#secondary|secondary]]&lt;br /&gt;
|An optional &amp;quot;secondary&amp;quot; element may appear as defined by the given link. This element defines a [[Secondary Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#existence|existence]]&lt;br /&gt;
|An optional &amp;quot;existence&amp;quot; element may appear as defined by the given link. This element defines an [[Existence Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoTag Element (Data)|autotag]]&lt;br /&gt;
|Zero or more &amp;quot;autotag&amp;quot; elements may appear as defined by the given link. This element specifies tags that are automatically assigned to each added thing.&lt;br /&gt;
|-&lt;br /&gt;
|[[IgnoreRequirements Element (Data)|ignorerequirements]]&lt;br /&gt;
|An optional &amp;quot;ignorerequirements&amp;quot; element may appear as defined by the given link. This element specifies circumstances under which pre-reqs for things and picks in this table are ignored.&lt;br /&gt;
|-&lt;br /&gt;
|[[#change|change]]&lt;br /&gt;
|An optional &amp;quot;change&amp;quot; element may appear as defined by the given link. This element defines a [[Change Script]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;show&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|allowstack&lt;br /&gt;
|(Optional) Boolean – Indicates whether the user is allowed to stack items within the table, subject to the restrictions imposed for each item. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentlist&lt;br /&gt;
|(Optional) Id – If set to a tag group id, only picks with the agent pick&#039;s identity tag from that group are shown in the table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|allowmove&lt;br /&gt;
|(Optional) Boolean – Indicates whether picks in this table can be moved out of this table, if the user drags them around. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|listpick&lt;br /&gt;
|(Optional) Id – Unique id of the pick to take the table&#039;s list expression from (see listfield, below). Note that this does not work when used with portals. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|listfield&lt;br /&gt;
|(Optional) Id – Unique id of the field to take the table&#039;s list expression from (see listpick, above). Note that this does not work when used with portals. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;show&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#list|list]]&lt;br /&gt;
|An optional &amp;quot;list&amp;quot; element may appear as defined by the given link. This element defines a [[List Tag Expression]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;list&amp;quot; Element{{anchor|list}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;list&amp;quot; element defines a [[List Tag Expression]] for the table that limits the set of picks that are shown. Regardless of this tag expression, all picks added via this table are always shown within it, enabling deletion of any object added through the table. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the List tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;candidate&amp;quot; Element{{anchor|candidate}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;candidate&amp;quot; element defines a [[Candidate Tag Expression]] for the table that limits the set of things/picks that are available for selection. If this element is omitted entirely, then the items available for selection must satisfy the List tag expression instead (above). The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|inheritlist&lt;br /&gt;
|(Optional) Boolean – Indicates whether the List tag expression (above) is automatically inherited into the Candidate tag expression. If inherited, all available objects must satisfy both the Candidate tag expressions and the List tag expression. This eliminates the need to redundantly maintain the same filter logic within both tag expressions. If not inherited, then the Candidate tag expression supersedes the List tag expression. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Candidate tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;restriction&amp;quot; Element{{anchor|restriction}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;restriction&amp;quot; element defines a [[Restriction Tag Expression]] for the table that further limits the set of things/picks that are available for selection. This tag expression is compared against all picks that have already been added to &#039;&#039;&#039;this table&#039;&#039;&#039;. Any object that already exists within the table is precluded from being selected again, resulting in it being omitted from the list of available choices. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Restriction tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;needtag&amp;quot; Element{{anchor|needtag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;needtag&amp;quot; element defines a tag relationship that must exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it has at least one matching tag with the same id in a separate tag group. If the tag is not found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;denytag&amp;quot; Element{{anchor|denytag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;denytag&amp;quot; element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it does not possess any matching tags with the same ids in a separate tag group. If any matching tags are found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;secondary&amp;quot; Element{{anchor|secondary}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;secondary&amp;quot; element defines a [[Secondary Tag Expression]] that is automatically associated with every new pick added via the table. This new tag expression is treated like an additional [[Container Tag Expression]] for the pick that must also be satisfied. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;existence&amp;quot; Element{{anchor|existence}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;existence&amp;quot; element defines an [[Existence Tag Expression]] that is automatically associated with every new pick added via the table. If a pick ever fails to satisfy the tag expression during an evaluation cycle, the pick is automatically deleted. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;change&amp;quot; Element{{anchor|change}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;change&amp;quot; element defines a [[Change Script]] for the table that is invoked whenever the user selects a new choice from the list of options. This script allows the implications of the new selection to be integrated and the display updated. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Change script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3185</id>
		<title>TableDef Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3185"/>
		<updated>2017-11-10T21:16:19Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* The &amp;quot;candidate&amp;quot; Element{{anchor|candidate}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{contextmulti|Kit Reference|Data File Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;tabledef&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|id&lt;br /&gt;
|Id – Specifies the unique id of the tabledef.&lt;br /&gt;
|-&lt;br /&gt;
|component&lt;br /&gt;
|Id – Specifies the unique id of the component the tabledef is associated with. Like a table, only things / picks from this component will be shown in the table.&lt;br /&gt;
|-&lt;br /&gt;
|isglobal&lt;br /&gt;
|(Optional) Boolean – if the table is used by ALL characters for the game system, specify isglobal=&amp;quot;yes&amp;quot;. This is unlikely to be true for game systems with multiple different types of characters, like Pathfinder (NPCs, kingdoms, armies, etc), so don&#039;t specify this unless every single character of any type will need it. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|description&lt;br /&gt;
|Text – A short string intended to communicate what the table does to the UI developers. This is is required for all tabledefs.&lt;br /&gt;
|-&lt;br /&gt;
|errorcategory&lt;br /&gt;
|(Optional) Unique id – indicates that this table is only marked as invalid if picks showing in it have an error of the appropriate category. If this attribute isn&#039;t set, the table will be marked as invalid if any pick in the table has an error. See error categories and table error reporting, below, for more details.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;tabledef&amp;quot; element also possesses child elements that define the specifics of the table. Both of these child elements are optional.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|select&lt;br /&gt;
|Contains details about the selection of new picks for this table. If the table can&#039;t select new picks (for example, if it&#039;s a fixed table), this should be omitted.&lt;br /&gt;
|-&lt;br /&gt;
|show&lt;br /&gt;
|Contains details about the picks shown in this table. Can be omitted if nothing interesting needs to be specified (for example, if the table has no list expression).&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;select&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|choosepicks&lt;br /&gt;
|(Optional) Set – Designates whether the selectable objects consist of things or picks, and, if the latter, where the list of picks is retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;thing – The selectable objects are things.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The selectable objects are picks from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The selectable objects are picks from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;thing&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|buyaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when purchasing items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|sellaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when selling items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|wrapupaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use after adding items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|linkage&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that will be used as a linkage. When a new pick is added to the table, that pick has an automatic linkage setup to any existing pick derived from the specified thing. If no derived pick exists when the new pick is added, no linkage is ever created. If empty, no linkage is established. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatepick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a pick that will contain a dynamically generated [[Candidate Tag Expression|Candidate tag expression]] for use in determining the list of available objects to choose from. If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatefield&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a text-based field that contains the [[Candidate Tag Expression|Candidate tag expression]] used to determine the list of available objects to choose from. This field must exist within the pick identified by the &amp;quot;candidatepick&amp;quot; attribute (above). If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|existphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|existprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|prereqtarget&lt;br /&gt;
|(Optional) Set – Designates the container against which all pre-requisite tests need to be performed when determining the list of items available for selection. When displacement is utilized, pre-requisites need to be tested against the container to which the new picks will ultimately be added. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The default parent container is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;parent – The next parent up the hierarchy is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The top-level hero is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|empty&lt;br /&gt;
|(Optional) Text – Specifies the text message to be displayed if the user attempts to select an option and there are no available items to choose from. If empty, a default message is displayed. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|useagentcandidate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the candidatepick of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|useagentlinkage&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the linkage of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentautotag&lt;br /&gt;
|(Optional) Id – Specifies the tag group of the agent pick&#039;s identity tag which will be added to picks added to this table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|maxchoicelimit&lt;br /&gt;
|(Optional) Number – How many picks can be added to this table. Default: no limit.&lt;br /&gt;
|-&lt;br /&gt;
|transactiontype&lt;br /&gt;
|Text – a short string, typically a single word, intended to communicate what sort of &amp;quot;purchase&amp;quot; the table typically makes. For example, any table in Pathfinder that allows you to buy gear might specify &amp;quot;money&amp;quot; for this attribute, indicating that money is generally used to buy the gear it contains, while the &amp;quot;Vanities&amp;quot; table might specify &amp;quot;prestige&amp;quot; instead, to indicate that the items within are generally bought with prestige.&lt;br /&gt;
|-&lt;br /&gt;
|autothing&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the thing to be added to the table whenever the user wants to add a pick. Use this if only a single thing can ever be added to the table.&lt;br /&gt;
|-&lt;br /&gt;
|selectnone&lt;br /&gt;
|(Optional) Boolean – Indicates whether it&#039;s valid to have no selection in this chooser. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;select&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#candidate|candidate]]&lt;br /&gt;
|An optional &amp;quot;candidate&amp;quot; element may appear as defined by the given link. This element defines a [[Candidate Tag Expression]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#restriction|restriction]]&lt;br /&gt;
|An optional &amp;quot;restriction&amp;quot; element may appear as defined by the given link. This element defines a [[Restriction Tag Expression]] for the table that identifies things which cannot be selected if they&#039;ve already been added to this table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#needtag|needtag]]&lt;br /&gt;
|Zero or more &amp;quot;needtag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#denytag|denytag]]&lt;br /&gt;
|Zero or more &amp;quot;denytag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#secondary|secondary]]&lt;br /&gt;
|An optional &amp;quot;secondary&amp;quot; element may appear as defined by the given link. This element defines a [[Secondary Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#existence|existence]]&lt;br /&gt;
|An optional &amp;quot;existence&amp;quot; element may appear as defined by the given link. This element defines an [[Existence Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoTag Element (Data)|autotag]]&lt;br /&gt;
|Zero or more &amp;quot;autotag&amp;quot; elements may appear as defined by the given link. This element specifies tags that are automatically assigned to each added thing.&lt;br /&gt;
|-&lt;br /&gt;
|[[IgnoreRequirements Element (Data)|ignorerequirements]]&lt;br /&gt;
|An optional &amp;quot;ignorerequirements&amp;quot; element may appear as defined by the given link. This element specifies circumstances under which pre-reqs for things and picks in this table are ignored.&lt;br /&gt;
|-&lt;br /&gt;
|[[#change|change]]&lt;br /&gt;
|An optional &amp;quot;change&amp;quot; element may appear as defined by the given link. This element defines a [[Change Script]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;show&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|allowstack&lt;br /&gt;
|(Optional) Boolean – Indicates whether the user is allowed to stack items within the table, subject to the restrictions imposed for each item. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentlist&lt;br /&gt;
|(Optional) Id – If set to a tag group id, only picks with the agent pick&#039;s identity tag from that group are shown in the table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|allowmove&lt;br /&gt;
|(Optional) Boolean – Indicates whether picks in this table can be moved out of this table, if the user drags them around. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|listpick&lt;br /&gt;
|(Optional) Id – Unique id of the pick to take the table&#039;s list expression from (see listfield, below). Note that this does not work in concert with table portals. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|listfield&lt;br /&gt;
|(Optional) Id – Unique id of the field to take the table&#039;s list expression from (see listpick, above). Note that this does not work in concert with table portals. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;show&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#list|list]]&lt;br /&gt;
|An optional &amp;quot;list&amp;quot; element may appear as defined by the given link. This element defines a [[List Tag Expression]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;list&amp;quot; Element{{anchor|list}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;list&amp;quot; element defines a [[List Tag Expression]] for the portal that limits the set of picks that are shown. Regardless of this tag expression, all picks added via this portal are always shown within it, enabling deletion of any object added through the table. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the List tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;candidate&amp;quot; Element{{anchor|candidate}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;candidate&amp;quot; element defines a [[Candidate Tag Expression]] for the table that limits the set of things/picks that are available for selection. If this element is omitted entirely, then the items available for selection must satisfy the List tag expression instead (above). The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|inheritlist&lt;br /&gt;
|(Optional) Boolean – Indicates whether the List tag expression (above) is automatically inherited into the Candidate tag expression. If inherited, all available objects must satisfy both the Candidate tag expressions and the List tag expression. This eliminates the need to redundantly maintain the same filter logic within both tag expressions. If not inherited, then the Candidate tag expression supersedes the List tag expression. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Candidate tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;restriction&amp;quot; Element{{anchor|restriction}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;restriction&amp;quot; element defines a [[Restriction Tag Expression]] for the table that further limits the set of things/picks that are available for selection. This tag expression is compared against all picks that have already been added to &#039;&#039;&#039;this table&#039;&#039;&#039;. Any object that already exists within the table is precluded from being selected again, resulting in it being omitted from the list of available choices. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Restriction tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;needtag&amp;quot; Element{{anchor|needtag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;needtag&amp;quot; element defines a tag relationship that must exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it has at least one matching tag with the same id in a separate tag group. If the tag is not found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;denytag&amp;quot; Element{{anchor|denytag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;denytag&amp;quot; element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it does not possess any matching tags with the same ids in a separate tag group. If any matching tags are found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;secondary&amp;quot; Element{{anchor|secondary}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;secondary&amp;quot; element defines a [[Secondary Tag Expression]] that is automatically associated with every new pick added via the table. This new tag expression is treated like an additional [[Container Tag Expression]] for the pick that must also be satisfied. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;existence&amp;quot; Element{{anchor|existence}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;existence&amp;quot; element defines an [[Existence Tag Expression]] that is automatically associated with every new pick added via the table. If a pick ever fails to satisfy the tag expression during an evaluation cycle, the pick is automatically deleted. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;change&amp;quot; Element{{anchor|change}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;change&amp;quot; element defines a [[Change Script]] for the table that is invoked whenever the user selects a new choice from the list of options. This script allows the implications of the new selection to be integrated and the display updated. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Change script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3184</id>
		<title>TableDef Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3184"/>
		<updated>2017-11-10T21:15:54Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* The &amp;quot;select&amp;quot; Child Element */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{contextmulti|Kit Reference|Data File Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;tabledef&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|id&lt;br /&gt;
|Id – Specifies the unique id of the tabledef.&lt;br /&gt;
|-&lt;br /&gt;
|component&lt;br /&gt;
|Id – Specifies the unique id of the component the tabledef is associated with. Like a table, only things / picks from this component will be shown in the table.&lt;br /&gt;
|-&lt;br /&gt;
|isglobal&lt;br /&gt;
|(Optional) Boolean – if the table is used by ALL characters for the game system, specify isglobal=&amp;quot;yes&amp;quot;. This is unlikely to be true for game systems with multiple different types of characters, like Pathfinder (NPCs, kingdoms, armies, etc), so don&#039;t specify this unless every single character of any type will need it. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|description&lt;br /&gt;
|Text – A short string intended to communicate what the table does to the UI developers. This is is required for all tabledefs.&lt;br /&gt;
|-&lt;br /&gt;
|errorcategory&lt;br /&gt;
|(Optional) Unique id – indicates that this table is only marked as invalid if picks showing in it have an error of the appropriate category. If this attribute isn&#039;t set, the table will be marked as invalid if any pick in the table has an error. See error categories and table error reporting, below, for more details.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;tabledef&amp;quot; element also possesses child elements that define the specifics of the table. Both of these child elements are optional.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|select&lt;br /&gt;
|Contains details about the selection of new picks for this table. If the table can&#039;t select new picks (for example, if it&#039;s a fixed table), this should be omitted.&lt;br /&gt;
|-&lt;br /&gt;
|show&lt;br /&gt;
|Contains details about the picks shown in this table. Can be omitted if nothing interesting needs to be specified (for example, if the table has no list expression).&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;select&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|choosepicks&lt;br /&gt;
|(Optional) Set – Designates whether the selectable objects consist of things or picks, and, if the latter, where the list of picks is retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;thing – The selectable objects are things.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The selectable objects are picks from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The selectable objects are picks from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;thing&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|buyaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when purchasing items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|sellaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when selling items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|wrapupaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use after adding items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|linkage&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that will be used as a linkage. When a new pick is added to the table, that pick has an automatic linkage setup to any existing pick derived from the specified thing. If no derived pick exists when the new pick is added, no linkage is ever created. If empty, no linkage is established. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatepick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a pick that will contain a dynamically generated [[Candidate Tag Expression|Candidate tag expression]] for use in determining the list of available objects to choose from. If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatefield&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a text-based field that contains the [[Candidate Tag Expression|Candidate tag expression]] used to determine the list of available objects to choose from. This field must exist within the pick identified by the &amp;quot;candidatepick&amp;quot; attribute (above). If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|existphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|existprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|prereqtarget&lt;br /&gt;
|(Optional) Set – Designates the container against which all pre-requisite tests need to be performed when determining the list of items available for selection. When displacement is utilized, pre-requisites need to be tested against the container to which the new picks will ultimately be added. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The default parent container is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;parent – The next parent up the hierarchy is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The top-level hero is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|empty&lt;br /&gt;
|(Optional) Text – Specifies the text message to be displayed if the user attempts to select an option and there are no available items to choose from. If empty, a default message is displayed. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|useagentcandidate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the candidatepick of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|useagentlinkage&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the linkage of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentautotag&lt;br /&gt;
|(Optional) Id – Specifies the tag group of the agent pick&#039;s identity tag which will be added to picks added to this table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|maxchoicelimit&lt;br /&gt;
|(Optional) Number – How many picks can be added to this table. Default: no limit.&lt;br /&gt;
|-&lt;br /&gt;
|transactiontype&lt;br /&gt;
|Text – a short string, typically a single word, intended to communicate what sort of &amp;quot;purchase&amp;quot; the table typically makes. For example, any table in Pathfinder that allows you to buy gear might specify &amp;quot;money&amp;quot; for this attribute, indicating that money is generally used to buy the gear it contains, while the &amp;quot;Vanities&amp;quot; table might specify &amp;quot;prestige&amp;quot; instead, to indicate that the items within are generally bought with prestige.&lt;br /&gt;
|-&lt;br /&gt;
|autothing&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the thing to be added to the table whenever the user wants to add a pick. Use this if only a single thing can ever be added to the table.&lt;br /&gt;
|-&lt;br /&gt;
|selectnone&lt;br /&gt;
|(Optional) Boolean – Indicates whether it&#039;s valid to have no selection in this chooser. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;select&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#candidate|candidate]]&lt;br /&gt;
|An optional &amp;quot;candidate&amp;quot; element may appear as defined by the given link. This element defines a [[Candidate Tag Expression]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#restriction|restriction]]&lt;br /&gt;
|An optional &amp;quot;restriction&amp;quot; element may appear as defined by the given link. This element defines a [[Restriction Tag Expression]] for the table that identifies things which cannot be selected if they&#039;ve already been added to this table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#needtag|needtag]]&lt;br /&gt;
|Zero or more &amp;quot;needtag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#denytag|denytag]]&lt;br /&gt;
|Zero or more &amp;quot;denytag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#secondary|secondary]]&lt;br /&gt;
|An optional &amp;quot;secondary&amp;quot; element may appear as defined by the given link. This element defines a [[Secondary Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#existence|existence]]&lt;br /&gt;
|An optional &amp;quot;existence&amp;quot; element may appear as defined by the given link. This element defines an [[Existence Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoTag Element (Data)|autotag]]&lt;br /&gt;
|Zero or more &amp;quot;autotag&amp;quot; elements may appear as defined by the given link. This element specifies tags that are automatically assigned to each added thing.&lt;br /&gt;
|-&lt;br /&gt;
|[[IgnoreRequirements Element (Data)|ignorerequirements]]&lt;br /&gt;
|An optional &amp;quot;ignorerequirements&amp;quot; element may appear as defined by the given link. This element specifies circumstances under which pre-reqs for things and picks in this table are ignored.&lt;br /&gt;
|-&lt;br /&gt;
|[[#change|change]]&lt;br /&gt;
|An optional &amp;quot;change&amp;quot; element may appear as defined by the given link. This element defines a [[Change Script]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;show&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|allowstack&lt;br /&gt;
|(Optional) Boolean – Indicates whether the user is allowed to stack items within the table, subject to the restrictions imposed for each item. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentlist&lt;br /&gt;
|(Optional) Id – If set to a tag group id, only picks with the agent pick&#039;s identity tag from that group are shown in the table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|allowmove&lt;br /&gt;
|(Optional) Boolean – Indicates whether picks in this table can be moved out of this table, if the user drags them around. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|listpick&lt;br /&gt;
|(Optional) Id – Unique id of the pick to take the table&#039;s list expression from (see listfield, below). Note that this does not work in concert with table portals. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|listfield&lt;br /&gt;
|(Optional) Id – Unique id of the field to take the table&#039;s list expression from (see listpick, above). Note that this does not work in concert with table portals. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;show&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#list|list]]&lt;br /&gt;
|An optional &amp;quot;list&amp;quot; element may appear as defined by the given link. This element defines a [[List Tag Expression]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;candidate&amp;quot; Element{{anchor|candidate}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;candidate&amp;quot; element defines a [[Candidate Tag Expression]] for the table that limits the set of things/picks that are available for selection. If this element is omitted entirely, then the items available for selection must satisfy the List tag expression instead (above). The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|inheritlist&lt;br /&gt;
|(Optional) Boolean – Indicates whether the List tag expression (above) is automatically inherited into the Candidate tag expression. If inherited, all available objects must satisfy both the Candidate tag expressions and the List tag expression. This eliminates the need to redundantly maintain the same filter logic within both tag expressions. If not inherited, then the Candidate tag expression supersedes the List tag expression. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Candidate tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;restriction&amp;quot; Element{{anchor|restriction}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;restriction&amp;quot; element defines a [[Restriction Tag Expression]] for the table that further limits the set of things/picks that are available for selection. This tag expression is compared against all picks that have already been added to &#039;&#039;&#039;this table&#039;&#039;&#039;. Any object that already exists within the table is precluded from being selected again, resulting in it being omitted from the list of available choices. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Restriction tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;needtag&amp;quot; Element{{anchor|needtag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;needtag&amp;quot; element defines a tag relationship that must exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it has at least one matching tag with the same id in a separate tag group. If the tag is not found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;denytag&amp;quot; Element{{anchor|denytag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;denytag&amp;quot; element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it does not possess any matching tags with the same ids in a separate tag group. If any matching tags are found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;secondary&amp;quot; Element{{anchor|secondary}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;secondary&amp;quot; element defines a [[Secondary Tag Expression]] that is automatically associated with every new pick added via the table. This new tag expression is treated like an additional [[Container Tag Expression]] for the pick that must also be satisfied. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;existence&amp;quot; Element{{anchor|existence}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;existence&amp;quot; element defines an [[Existence Tag Expression]] that is automatically associated with every new pick added via the table. If a pick ever fails to satisfy the tag expression during an evaluation cycle, the pick is automatically deleted. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;change&amp;quot; Element{{anchor|change}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;change&amp;quot; element defines a [[Change Script]] for the table that is invoked whenever the user selects a new choice from the list of options. This script allows the implications of the new selection to be integrated and the display updated. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Change script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3183</id>
		<title>TableDef Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=TableDef_Element_(Data)&amp;diff=3183"/>
		<updated>2017-11-10T21:11:31Z</updated>

		<summary type="html">&lt;p&gt;Colen: Created page with &amp;quot;{{contextmulti|Kit Reference|Data File Reference}}  ==The &amp;quot;tabledef&amp;quot; Element==  :{| class=&amp;quot;infotable&amp;quot; |class=&amp;quot;leftnormal&amp;quot;|id |Id – Specifies the unique id of the tabledef. |...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{contextmulti|Kit Reference|Data File Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;tabledef&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|id&lt;br /&gt;
|Id – Specifies the unique id of the tabledef.&lt;br /&gt;
|-&lt;br /&gt;
|component&lt;br /&gt;
|Id – Specifies the unique id of the component the tabledef is associated with. Like a table, only things / picks from this component will be shown in the table.&lt;br /&gt;
|-&lt;br /&gt;
|isglobal&lt;br /&gt;
|(Optional) Boolean – if the table is used by ALL characters for the game system, specify isglobal=&amp;quot;yes&amp;quot;. This is unlikely to be true for game systems with multiple different types of characters, like Pathfinder (NPCs, kingdoms, armies, etc), so don&#039;t specify this unless every single character of any type will need it. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|description&lt;br /&gt;
|Text – A short string intended to communicate what the table does to the UI developers. This is is required for all tabledefs.&lt;br /&gt;
|-&lt;br /&gt;
|errorcategory&lt;br /&gt;
|(Optional) Unique id – indicates that this table is only marked as invalid if picks showing in it have an error of the appropriate category. If this attribute isn&#039;t set, the table will be marked as invalid if any pick in the table has an error. See error categories and table error reporting, below, for more details.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;tabledef&amp;quot; element also possesses child elements that define the specifics of the table. Both of these child elements are optional.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|select&lt;br /&gt;
|Contains details about the selection of new picks for this table. If the table can&#039;t select new picks (for example, if it&#039;s a fixed table), this should be omitted.&lt;br /&gt;
|-&lt;br /&gt;
|show&lt;br /&gt;
|Contains details about the picks shown in this table. Can be omitted if nothing interesting needs to be specified (for example, if the table has no list expression).&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;select&amp;quot; Child Element==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|choosepicks&lt;br /&gt;
|(Optional) Set – Designates whether the selectable objects consist of things or picks, and, if the latter, where the list of picks is retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;thing – The selectable objects are things.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The selectable objects are picks from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The selectable objects are picks from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;thing&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|buyaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when purchasing items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|sellaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use when selling items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|wrapupaction&lt;br /&gt;
|(Optional) Id – indicates the id of the action for the new UI to use after adding items from this table. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|linkage&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that will be used as a linkage. When a new pick is added to the table, that pick has an automatic linkage setup to any existing pick derived from the specified thing. If no derived pick exists when the new pick is added, no linkage is ever created. If empty, no linkage is established. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatepick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a pick that will contain a dynamically generated [[Candidate Tag Expression|Candidate tag expression]] for use in determining the list of available objects to choose from. If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatefield&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a text-based field that contains the [[Candidate Tag Expression|Candidate tag expression]] used to determine the list of available objects to choose from. This field must exist within the pick identified by the &amp;quot;candidatepick&amp;quot; attribute (above). If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|secondprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Secondary Tag Expression|Secondary tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|existphase&lt;br /&gt;
|(Optional) Id – Specifies the phase of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|existprior&lt;br /&gt;
|(Optional) Number – Specifies the priority of the [[Existence Tag Expression|Existence tag expression]] for this table, if one is present. Default: Priority specified in the game system definition file.&lt;br /&gt;
|-&lt;br /&gt;
|prereqtarget&lt;br /&gt;
|(Optional) Set – Designates the container against which all pre-requisite tests need to be performed when determining the list of items available for selection. When displacement is utilized, pre-requisites need to be tested against the container to which the new picks will ultimately be added. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The default parent container is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;parent – The next parent up the hierarchy is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The top-level hero is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|empty&lt;br /&gt;
|(Optional) Text – Specifies the text message to be displayed if the user attempts to select an option and there are no available items to choose from. If empty, a default message is displayed. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|useagentcandidate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the candidatepick of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|useagentlinkage&lt;br /&gt;
|(Optional) Boolean – Indicates whether the agent pick should be used for the linkage of this table. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|agentautotag&lt;br /&gt;
|(Optional) Id – Specifies the tag group of the agent pick&#039;s identity tag which will be added to picks added to this table. Default: None.&lt;br /&gt;
|-&lt;br /&gt;
|maxchoicelimit&lt;br /&gt;
|(Optional) Number – How many picks can be added to this table. Default: no limit.&lt;br /&gt;
|-&lt;br /&gt;
|transactiontype&lt;br /&gt;
|Text – a short string, typically a single word, intended to communicate what sort of &amp;quot;purchase&amp;quot; the table typically makes. For example, any table in Pathfinder that allows you to buy gear might specify &amp;quot;money&amp;quot; for this attribute, indicating that money is generally used to buy the gear it contains, while the &amp;quot;Vanities&amp;quot; table might specify &amp;quot;prestige&amp;quot; instead, to indicate that the items within are generally bought with prestige.&lt;br /&gt;
|-&lt;br /&gt;
|autothing&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the thing to be added to the table whenever the user wants to add a pick. Use this if only a single thing can ever be added to the table.&lt;br /&gt;
|-&lt;br /&gt;
|selectnone&lt;br /&gt;
|(Optional) Boolean – Indicates whether it&#039;s valid to have no selection in this chooser. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;select&amp;quot; element also possesses child elements that define additional behaviors of the table. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#candidate|candidate]]&lt;br /&gt;
|An optional &amp;quot;candidate&amp;quot; element may appear as defined by the given link. This element defines a [[Candidate Tag Expression]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#restriction|restriction]]&lt;br /&gt;
|An optional &amp;quot;restriction&amp;quot; element may appear as defined by the given link. This element defines a [[Restriction Tag Expression]] for the table that identifies things which cannot be selected if they&#039;ve already been added to this table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#needtag|needtag]]&lt;br /&gt;
|Zero or more &amp;quot;needtag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#denytag|denytag]]&lt;br /&gt;
|Zero or more &amp;quot;denytag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#secondary|secondary]]&lt;br /&gt;
|An optional &amp;quot;secondary&amp;quot; element may appear as defined by the given link. This element defines a [[Secondary Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[#existence|existence]]&lt;br /&gt;
|An optional &amp;quot;existence&amp;quot; element may appear as defined by the given link. This element defines an [[Existence Tag Expression]] that is associated with every new pick added via the table.&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoTag Element (Data)|autotag]]&lt;br /&gt;
|Zero or more &amp;quot;autotag&amp;quot; elements may appear as defined by the given link. This element specifies tags that are automatically assigned to each added thing.&lt;br /&gt;
|-&lt;br /&gt;
|[[IgnoreRequirements Element (Data)|ignorerequirements]]&lt;br /&gt;
|An optional &amp;quot;ignorerequirements&amp;quot; element may appear as defined by the given link. This element specifies circumstances under which pre-reqs for things and picks in this table are ignored.&lt;br /&gt;
|-&lt;br /&gt;
|[[#change|change]]&lt;br /&gt;
|An optional &amp;quot;change&amp;quot; element may appear as defined by the given link. This element defines a [[Change Script]] for the table.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;candidate&amp;quot; Element{{anchor|candidate}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;candidate&amp;quot; element defines a [[Candidate Tag Expression]] for the table that limits the set of things/picks that are available for selection. If this element is omitted entirely, then the items available for selection must satisfy the List tag expression instead (above). The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|inheritlist&lt;br /&gt;
|(Optional) Boolean – Indicates whether the List tag expression (above) is automatically inherited into the Candidate tag expression. If inherited, all available objects must satisfy both the Candidate tag expressions and the List tag expression. This eliminates the need to redundantly maintain the same filter logic within both tag expressions. If not inherited, then the Candidate tag expression supersedes the List tag expression. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Candidate tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;restriction&amp;quot; Element{{anchor|restriction}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;restriction&amp;quot; element defines a [[Restriction Tag Expression]] for the table that further limits the set of things/picks that are available for selection. This tag expression is compared against all picks that have already been added to &#039;&#039;&#039;this table&#039;&#039;&#039;. Any object that already exists within the table is precluded from being selected again, resulting in it being omitted from the list of available choices. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Restriction tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;needtag&amp;quot; Element{{anchor|needtag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;needtag&amp;quot; element defines a tag relationship that must exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it has at least one matching tag with the same id in a separate tag group. If the tag is not found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;denytag&amp;quot; Element{{anchor|denytag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;denytag&amp;quot; element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it does not possess any matching tags with the same ids in a separate tag group. If any matching tags are found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;secondary&amp;quot; Element{{anchor|secondary}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;secondary&amp;quot; element defines a [[Secondary Tag Expression]] that is automatically associated with every new pick added via the table. This new tag expression is treated like an additional [[Container Tag Expression]] for the pick that must also be satisfied. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;existence&amp;quot; Element{{anchor|existence}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;existence&amp;quot; element defines an [[Existence Tag Expression]] that is automatically associated with every new pick added via the table. If a pick ever fails to satisfy the tag expression during an evaluation cycle, the pick is automatically deleted. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;change&amp;quot; Element{{anchor|change}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;change&amp;quot; element defines a [[Change Script]] for the table that is invoked whenever the user selects a new choice from the list of options. This script allows the implications of the new selection to be integrated and the display updated. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Change script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Data_File_Reference&amp;diff=3182</id>
		<title>Data File Reference</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Data_File_Reference&amp;diff=3182"/>
		<updated>2017-11-10T20:47:21Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Structural Composition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The data file is where you&#039;ll be defining all of the top-level elements that the user will directly control. This includes visual elements like panels, layouts, templates, and portals. It also includes game system elements like things.&lt;br /&gt;
&lt;br /&gt;
All data files have the &amp;quot;.dat&amp;quot; file extension and are loaded after all of the structural files have defined the framework for the game system.&lt;br /&gt;
&lt;br /&gt;
This section outlines the structure and mechanics for writing a definition file.&lt;br /&gt;
&lt;br /&gt;
{{important}}This section utilizes [[Kit Reference#conventions|critical notational conventions]] that should be reviewed.&lt;br /&gt;
&lt;br /&gt;
{{important}}Just because you &#039;&#039;&#039;can&#039;&#039;&#039; put numerous different elements in the same file does not mean you &#039;&#039;&#039;should&#039;&#039;&#039; do so. Keeping your data files small and focused will also keep them much more manageable, so break up all the information across files where appropriate. See the Skeleton data files for examples of this.&lt;br /&gt;
&lt;br /&gt;
==Structural Composition==&lt;br /&gt;
&lt;br /&gt;
The overall file structure is that of a standard XML file. The file must start with an XML version element in the form: &amp;quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&amp;quot;. Following this, the top-level XML element must be a &amp;quot;document&amp;quot; and it must have a &amp;quot;signature&amp;quot; attribute containing the explicit value &amp;quot;Hero Lab Data&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
The following table defines the attributes for a &amp;quot;document&amp;quot; element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|signature&lt;br /&gt;
|Text – Must be the value &amp;quot;Hero Lab Data&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Within the document element, every data file possesses the following child elements, appearing in the sequence given and with the names specified.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|{{flalt|LoadOnce Element (Data)|loadonce}}&lt;br /&gt;
|A single &amp;quot;loadonce&amp;quot; element may appear as defined by the given link. This element allows you to conditionally exclude files from being loaded if a similar file has already been loaded.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|FileInfo Element (Data)|fileinfo}}&lt;br /&gt;
|A single &amp;quot;fileinfo&amp;quot; element may appear as defined by the given link. This element specifies information about the data file and its author.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|FileConstants Element (Data)|fileconstants}}&lt;br /&gt;
|A single &amp;quot;fileconstants&amp;quot; element may appear as defined by the given link. This element specifies constant information that affects the whole data file.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Procedure Element (Data)|procedure}}&lt;br /&gt;
|Zero or more &amp;quot;procedure&amp;quot; elements may appear as defined by the given link. This element specifies a collection of procedures that may be called by scripts throughout the data files.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Action Element (Data)|action}}&lt;br /&gt;
|Zero or more &amp;quot;action&amp;quot; elements may appear as defined by the given link. This element specifies a collection of actions that may be invoked throughout the data files.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Thing Element (Data)|thing}}&lt;br /&gt;
|Zero or more &amp;quot;thing&amp;quot; elements may appear as defined by the given link. This element specifies various thing objects for use within the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Portal Element (Data)|portal}}&lt;br /&gt;
|Zero or more &amp;quot;portal&amp;quot; elements may appear as defined by the given link. This element specifies an assortment of portals for use within layouts.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Template Element (Data)|template}}&lt;br /&gt;
|Zero or more &amp;quot;template&amp;quot; elements may appear as defined by the given link. This element specifies an assortment of templates for use within layouts.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Layout Element (Data)|layout}}&lt;br /&gt;
|Zero or more &amp;quot;layout&amp;quot; elements may appear as defined by the given link. This element specifies an assortment of layouts for use within panels, forms, and sheets.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Panel Element (Data)|panel}}&lt;br /&gt;
|Zero or more &amp;quot;panel&amp;quot; elements may appear as defined by the given link. This element specifies a variety of panels that will be presented to the user as part of the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Form Element (Data)|form}}&lt;br /&gt;
|Zero or more &amp;quot;form&amp;quot; elements may appear as defined by the given link. This element specifies a variety of forms that will be presented to the user as part of the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Sheet Element (Data)|sheet}}&lt;br /&gt;
|Zero or more &amp;quot;sheet&amp;quot; elements may appear as defined by the given link. This element specifies a variety of sheets that will be used for printouts within dossiers.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|TableDef Element (Data)|tabledef}}&lt;br /&gt;
|Zero or more &amp;quot;tabledef&amp;quot; elements may appear as defined by the given link. This element specifies a variety of tables that will be used throughout the data files.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Dossier Element (Data)|dossier}}&lt;br /&gt;
|Zero or more &amp;quot;dossier&amp;quot; elements may appear as defined by the given link. This element specifies a collection of dossiers that the user can select for character output.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Hidden Element (Data)|hidden}}&lt;br /&gt;
|Zero or more &amp;quot;hidden&amp;quot; elements may appear as defined by the given link. This element identifies things that HL should remove from use within the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Preclude Element (Data)|preclude}}&lt;br /&gt;
|Zero or more &amp;quot;preclude&amp;quot; elements may appear as defined by the given link. This element identifies things that HL should preclude from use if certain sources are specified.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Input Thing Group Element (Data)|inputthinggroup}}&lt;br /&gt;
|Zero or more &amp;quot;inputthinggroup&amp;quot; elements may appear as defined by the given link. This element identifies groups of input things that are shown in the editor.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Edit Thing Element (Data)|editthing}}&lt;br /&gt;
|Zero or more &amp;quot;editthing&amp;quot; elements may appear as defined by the given link. This element specifies a variety of elements that enable use of the integrated Editor for creation of things.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Loadmods Element (Data)|loadmods}}&lt;br /&gt;
|An optional &amp;quot;loadmods&amp;quot; element may appear as defined by the given link. This element specifies ways to adjust old saved portfolios to new versions of the data files.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|FAQ Element (Data)|faq}}&lt;br /&gt;
|Zero or more &amp;quot;faq&amp;quot; elements may appear as defined by the given link. This element specifies various FAQ entries that will be included within the FAQ page for the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|ExtThing Element (Data)|extthing}}&lt;br /&gt;
|Zero or more &amp;quot;extthing&amp;quot; elements may appear as defined by the given link. This element specifies additional tags which may be added to the specified things.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==DTD==&lt;br /&gt;
&lt;br /&gt;
To edit data files in your XML editor, you can use the [[Data File DTD|Data File DTD here]].&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=FileConstants_Element_(Data)&amp;diff=3181</id>
		<title>FileConstants Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=FileConstants_Element_(Data)&amp;diff=3181"/>
		<updated>2017-11-06T18:56:26Z</updated>

		<summary type="html">&lt;p&gt;Colen: Created page with &amp;quot;{{context|Kit Reference|Data File Reference}}  ==The &amp;quot;fileconstants&amp;quot; Element==  This element allows you to specify behaviors that apply to each thing in this file. This can be...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;fileconstants&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
This element allows you to specify behaviors that apply to each thing in this file. This can be used to assign a tag to every thing in a file, or to verify that a certain substring appears in the unique id of every thing in a file.&lt;br /&gt;
&lt;br /&gt;
The contents of the &amp;quot;fileconstants&amp;quot; element cannot be viewed in the Hero Lab editor - they can only be seen when editing the file XML in a text editor. The HL editor preserves the fileconstants element of any file loaded into it, but does not allow you to view or change it.&lt;br /&gt;
&lt;br /&gt;
The fileconstants element has the following attributes:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|thingidrequirement&lt;br /&gt;
|Specifies a substring that must be found in the unique of every element in the file, or an error is reported. For example, if you were building a file for content from the &amp;quot;Amazing Games&amp;quot; publisher, and you wanted to make sure each element included &amp;quot;AG&amp;quot; in its unique id, you would specify &amp;quot;AG&amp;quot; for this attribute. Any thing without &amp;quot;AG&amp;quot; in its unique id would then report an error when the data files were compiled.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;fileconstants&amp;quot; element possesses the following child elements:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|autotag&lt;br /&gt;
|Zero or more &amp;quot;autotag&amp;quot; elements may be specified, each with a group id and tag id (&amp;quot;group&amp;quot; and &amp;quot;tag&amp;quot; attributes). Each tag listed here is added to every thing in the file.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;fileconstants thingidrequirement=&amp;quot;AP&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;autotag group=&amp;quot;SomeGroup&amp;quot; tag=&amp;quot;SomeTag&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/fileconstants&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Data_File_Reference&amp;diff=3180</id>
		<title>Data File Reference</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Data_File_Reference&amp;diff=3180"/>
		<updated>2017-11-03T20:07:55Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Structural Composition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The data file is where you&#039;ll be defining all of the top-level elements that the user will directly control. This includes visual elements like panels, layouts, templates, and portals. It also includes game system elements like things.&lt;br /&gt;
&lt;br /&gt;
All data files have the &amp;quot;.dat&amp;quot; file extension and are loaded after all of the structural files have defined the framework for the game system.&lt;br /&gt;
&lt;br /&gt;
This section outlines the structure and mechanics for writing a definition file.&lt;br /&gt;
&lt;br /&gt;
{{important}}This section utilizes [[Kit Reference#conventions|critical notational conventions]] that should be reviewed.&lt;br /&gt;
&lt;br /&gt;
{{important}}Just because you &#039;&#039;&#039;can&#039;&#039;&#039; put numerous different elements in the same file does not mean you &#039;&#039;&#039;should&#039;&#039;&#039; do so. Keeping your data files small and focused will also keep them much more manageable, so break up all the information across files where appropriate. See the Skeleton data files for examples of this.&lt;br /&gt;
&lt;br /&gt;
==Structural Composition==&lt;br /&gt;
&lt;br /&gt;
The overall file structure is that of a standard XML file. The file must start with an XML version element in the form: &amp;quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&amp;quot;. Following this, the top-level XML element must be a &amp;quot;document&amp;quot; and it must have a &amp;quot;signature&amp;quot; attribute containing the explicit value &amp;quot;Hero Lab Data&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
The following table defines the attributes for a &amp;quot;document&amp;quot; element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|signature&lt;br /&gt;
|Text – Must be the value &amp;quot;Hero Lab Data&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Within the document element, every data file possesses the following child elements, appearing in the sequence given and with the names specified.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|{{flalt|LoadOnce Element (Data)|loadonce}}&lt;br /&gt;
|A single &amp;quot;loadonce&amp;quot; element may appear as defined by the given link. This element allows you to conditionally exclude files from being loaded if a similar file has already been loaded.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|FileInfo Element (Data)|fileinfo}}&lt;br /&gt;
|A single &amp;quot;fileinfo&amp;quot; element may appear as defined by the given link. This element specifies information about the data file and its author.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|FileConstants Element (Data)|fileconstants}}&lt;br /&gt;
|A single &amp;quot;fileconstants&amp;quot; element may appear as defined by the given link. This element specifies constant information that affects the whole data file.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Procedure Element (Data)|procedure}}&lt;br /&gt;
|Zero or more &amp;quot;procedure&amp;quot; elements may appear as defined by the given link. This element specifies a collection of procedures that may be called by scripts throughout the data files.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Thing Element (Data)|thing}}&lt;br /&gt;
|Zero or more &amp;quot;thing&amp;quot; elements may appear as defined by the given link. This element specifies various thing objects for use within the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Portal Element (Data)|portal}}&lt;br /&gt;
|Zero or more &amp;quot;portal&amp;quot; elements may appear as defined by the given link. This element specifies an assortment of portals for use within layouts.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Template Element (Data)|template}}&lt;br /&gt;
|Zero or more &amp;quot;template&amp;quot; elements may appear as defined by the given link. This element specifies an assortment of templates for use within layouts.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Layout Element (Data)|layout}}&lt;br /&gt;
|Zero or more &amp;quot;layout&amp;quot; elements may appear as defined by the given link. This element specifies an assortment of layouts for use within panels, forms, and sheets.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Panel Element (Data)|panel}}&lt;br /&gt;
|Zero or more &amp;quot;panel&amp;quot; elements may appear as defined by the given link. This element specifies a variety of panels that will be presented to the user as part of the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Form Element (Data)|form}}&lt;br /&gt;
|Zero or more &amp;quot;form&amp;quot; elements may appear as defined by the given link. This element specifies a variety of forms that will be presented to the user as part of the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Sheet Element (Data)|sheet}}&lt;br /&gt;
|Zero or more &amp;quot;sheet&amp;quot; elements may appear as defined by the given link. This element specifies a variety of sheets that will be used for printouts within dossiers.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Dossier Element (Data)|dossier}}&lt;br /&gt;
|Zero or more &amp;quot;dossier&amp;quot; elements may appear as defined by the given link. This element specifies a collection of dossiers that the user can select for character output.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Hidden Element (Data)|hidden}}&lt;br /&gt;
|Zero or more &amp;quot;hidden&amp;quot; elements may appear as defined by the given link. This element identifies things that HL should remove from use within the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Edit Thing Element (Data)|editthing}}&lt;br /&gt;
|Zero or more &amp;quot;editthing&amp;quot; elements may appear as defined by the given link. This element specifies a variety of elements that enable use of the integrated Editor for creation of things.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|FAQ Element (Data)|faq}}&lt;br /&gt;
|Zero or more &amp;quot;faq&amp;quot; elements may appear as defined by the given link. This element specifies various FAQ entries that will be included within the FAQ page for the game system.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==DTD==&lt;br /&gt;
&lt;br /&gt;
To edit data files in your XML editor, you can use the [[Data File DTD|Data File DTD here]].&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3178</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3178"/>
		<updated>2017-06-07T14:45:45Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Deliverable 1 - Create portfolios for every encounter and NPC in the module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== Only use official LWD content when creating data files or portfolios ==&lt;br /&gt;
When building data files or entering portfolios, make sure you don&#039;t have any &amp;quot;third party&amp;quot; data files installed. Content in &amp;quot;third party&amp;quot; data files isn&#039;t available to everyone, and can cause problems with what you&#039;re entering. You can check to make sure you don&#039;t have any installed by going to Tools -&amp;gt; Manage Third Party Updates in Hero Lab.&lt;br /&gt;
&lt;br /&gt;
If you do have third party content installed, you should either delete it before working on stuff for us, or download a separate copy of the Pathfinder game system that you use to work on stuff for us. You can do this by downloading the latest Pathfinder update from the &amp;quot;Find Updates&amp;quot; screen, then changing the folder at the bottom-left of the screen to something like &amp;quot;pathfinder_lwd&amp;quot;. Make sure you edit all portfolios only with the &amp;quot;pathfinder_lwd&amp;quot; version of Pathfinder, to avoid introducing or referencing third party content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the sNameMod field when bootstrapping. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a sNameMod of &amp;quot;self plus 50 lbs. of objects only&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Details to Check for Weapons, Armor, Magic Items, and Gear =&lt;br /&gt;
&lt;br /&gt;
* If there is equipment in this book from an exotic source, like high-tech items, or stone-age items, or firearms, in the Configure Hero settings, go to the &amp;quot;Equipment, Weapons &amp;amp; Armor to show&amp;quot; section, and turn on the option(s) that should hide this exotic content.  Then, search the various tables for content from this book, and make sure that it is hidden as intended. If not, set the appropriate tag in the &amp;quot;Special Groupings&amp;quot; list for the category.&lt;br /&gt;
&lt;br /&gt;
* Did you create any new weapons that are helper items or variants of an existing weapon?  If so, add the weapon focus feat, and then double-check that none of the helper weapons show up there as a selection option. (To check this, search for items from the book and make sure that nothing appears in the tables that shouldn&#039;t.)&lt;br /&gt;
&lt;br /&gt;
* In each table where you&#039;ve added new content, filter to only this new book, and look at what categories your new content fits in to - are they sorted under the correct headers?&lt;br /&gt;
&lt;br /&gt;
* Go to the weapons, armor, magic, and gear tabs, and filter for &amp;quot;- no description -&amp;quot; (note the spaces between the - and the words).  Make sure none of the content from your book is among this material - everything new should have a description.&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary. For multiple issue series, like adventure paths, the sourcebook name should include both the overarching series and the specific issue, for example &amp;quot;Ironfang Invasion: Siege of Stone&amp;quot;&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Entering Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
These guidelines apply to people who are building Hero Lab encounter libraries, typically for Pathfinder Modules and adventure paths.&lt;br /&gt;
&lt;br /&gt;
There are two deliverables which must be submitted before a project is completed, which should be worked on in parallel.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 1 - Create portfolios for every encounter and NPC in the module ==&lt;br /&gt;
&lt;br /&gt;
Every statblock, or partial statblock, printed in the module / adventure path / whatever must have a portfolio created in Hero Lab. The portfolio filenames are what appear in the Encounter Library, so they should be chosen based on the rules in &amp;quot;step 1&amp;quot; of the &amp;quot;testing encounter libraries&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
Please keep the following in mind when entering portfolios:&lt;br /&gt;
&lt;br /&gt;
* Portfolio names &#039;&#039;&#039;must&#039;&#039;&#039; be correct before we accept this deliverable - don&#039;t submit files with names like &amp;quot;encounter1.por&amp;quot; &amp;quot;encounter2.por&amp;quot; etc, as it makes things harder to QA. &lt;br /&gt;
&lt;br /&gt;
* Portfolio name format is important! For most encounters, the format is &amp;quot;PAGE - SECTION/MAP AREA - ENCOUNTER NAME (OTHER INFO, CR)&amp;quot;. Note that not all general encounters will include all elements of the format.&lt;br /&gt;
&lt;br /&gt;
# PAGE is the abbreviation &amp;quot;p&amp;quot; and the page number the encounter starts on, and includes a preceding 0 when necessary to bring things to 2 digits. For example, &amp;quot;p07&amp;quot; or &amp;quot;p82&amp;quot;.&lt;br /&gt;
# SECTION/MAP AREA is what identifies where in the module structure the encounter appears. It usually precedes the name. For example &amp;quot;Event 3&amp;quot; or &amp;quot;B3&amp;quot;.&lt;br /&gt;
# ENCOUNTER NAME is the name of the encounter, which should be in Title Case. For example, &amp;quot;Trader in the Dark&amp;quot; or &amp;quot;Khardajeen&#039;s Rest&amp;quot;.&lt;br /&gt;
# OTHER INFO is rarely used, most often to distinguish one version of an encounter from another. For example, &amp;quot;If idol is active&amp;quot; or &amp;quot;While alarm is raised&amp;quot;.&lt;br /&gt;
# CR is the challenge rating of the encounter, which is usually in the AP, but may be omitted for encounters which are non-combat. It should NOT include a preceding 0 when it is below 2 digits. There should be a space between &amp;quot;CR&amp;quot; and the number.&lt;br /&gt;
# For example: p30 - J23 - Strategy Room (CR 5).por&lt;br /&gt;
&lt;br /&gt;
* An exception to the above are encounters in a random encounter table. There, the format is &amp;quot;ROLL RANGE - ENCOUNTER NAME&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
# ROLL RANGE is the numbers which must be rolled in order to meet this encounter. It should include preceding 0 when below 2 digits. For example, &amp;quot;01-05&amp;quot;, &amp;quot;08-12&amp;quot;, &amp;quot;33-40&amp;quot;.&lt;br /&gt;
# ENCOUNTER NAME is the name of the encounter, whose case varies here. It should be in Sentence case for most of these encounters (for example &amp;quot;1d6 peuchen&amp;quot; or &amp;quot;1 griffon&amp;quot;), but special encounters (those given a writeup near the table) should be in Title Case (for example, &amp;quot;Scout Patrol&amp;quot; or &amp;quot;Mausoleum of Bacchus&amp;quot;).&lt;br /&gt;
# For example: 95-97 - 2 deathwebs.por&lt;br /&gt;
&lt;br /&gt;
* Don&#039;t create a portfolio unless there&#039;s at least a partial statblock present in the module. A partial statblock will typically show the basic stats of the monster, then refer you to a Bestiary - for those, you can import the monster from the encounter builder, and make any changes as required (for example, you might need to apply a template to it, or swap out weapons).&lt;br /&gt;
&lt;br /&gt;
* If an encounter includes multiple copies of an NPC, import that many copies into the portfolio. If you need to make changes (like adding templates) it will probably be easier to make one, apply any changes, then duplicate it from the Portfolio menu instead.&lt;br /&gt;
&lt;br /&gt;
* Some NPCs (e.g. Pavo Vos on page 18 of Fangwood Keep) will need a full Hero Lab character created for them. In those cases, create the character. Don&#039;t create statblocks for NPCs we don&#039;t have enough information about. For example, if the text mentions &amp;quot;Merlin (elf wizard 4) might be hanging around the sanctum&amp;quot;, don&#039;t create an NPC for him - we can&#039;t, because we don&#039;t know anything useful about him to create the NPC with.&lt;br /&gt;
&lt;br /&gt;
* Do not forget to include the sections in the Appendix! Adventure paths reproduce star characters in the appendix, and such characters should be restored to their &amp;quot;fresh&amp;quot; state. For example, an NPC who was discovered wounded during the course of the adventure, when represented in the appendix section, would be at full hit points. Another common part of the appendix is a random encounter table, but there may be other sections with their own statblocks which need representation as well.&lt;br /&gt;
&lt;br /&gt;
* When building an NPC, you&#039;ll need to reverse-engineer the Hero Lab character from the statblock. For example, the character&#039;s hit points will come from a combination of class levels, favored class bonuses, and other sources - use average hit points for the class levels (which on NPCs, alternate from one level to the next). Generally favored class bonuses will be used to add additional hit points, but not always.&lt;br /&gt;
&lt;br /&gt;
* Make sure all characters you create in all portfolios are set to &amp;quot;NPC&amp;quot; and &amp;quot;enemy of the party&amp;quot; on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
* For any NPC in a portfolio (either imported from the encounter builder or created by yourself), check that the statblock output matches what&#039;s shown in the &amp;quot;Output Hero Statblock&amp;quot; window (found in the File menu). If anything there is wrong, try to figure out why - is it a mistake you made, or a mistake made by the authors of the encounter?&lt;br /&gt;
&lt;br /&gt;
* A convenient way to check whether the statblock is correct is to turn on the &amp;quot;statblock summary info window&amp;quot; for the portfolio - you can find it about 80% of the way down the &amp;quot;hero settings&amp;quot; in the configure hero form. Turn on &amp;quot;show full statblock summary window&amp;quot; and the first info window will be replaced by the character statblock. This allows you to check things without having to go to the File menu every time.&lt;br /&gt;
&lt;br /&gt;
* In general, set &amp;quot;base values&amp;quot; before &amp;quot;derived values&amp;quot;. For example, set the character&#039;s ability scores first, then their skills - if you change ability scores after setting their skills, the skill values will change.&lt;br /&gt;
&lt;br /&gt;
* If you make any tweaks to the character after checking the statblock, you need to re-check the statblock for any changes. Remember, if you change an ability score, that can affect skills, ability values, etc. &lt;br /&gt;
&lt;br /&gt;
* Set the &amp;quot;buy for free&amp;quot; checkbox to buy the character&#039;s gear for free, then set their &amp;quot;starting cash&amp;quot; to be any cash the portfolio indicates they have.&lt;br /&gt;
&lt;br /&gt;
* Many NPCs will list &amp;quot;longbow with 20 arrows&amp;quot; for gear - to make that appear correctly on the statblock, add the longbow, add the arrows, then put the arrows &amp;quot;into&amp;quot; the bow using the &amp;quot;gear&amp;quot; button (the little bag) on the arrows.&lt;br /&gt;
&lt;br /&gt;
* Remember to set important things like composite longbow strength bonuses, holy symbol details, etc.&lt;br /&gt;
&lt;br /&gt;
* If you find differences between Hero Lab&#039;s statblock and what&#039;s in the book, try to do what the creators &amp;quot;meant&amp;quot;, even if that means the character will have validation errors. Examples:&lt;br /&gt;
&lt;br /&gt;
# if the character has too many feats or skill points, that&#039;s fine - just do what the module says. The GM will see any errors when they import the portfolio, and it&#039;s up to them what to do about them.&lt;br /&gt;
# If you can&#039;t get the skills to match up for an obvious reason, then don&#039;t worry about the problem. For example, a common issue is that NPCs have too much gear, so they&#039;re encumbered, so their skills in HL are lower than the portfolio says they should be - that&#039;s a case where we should leave them at the &amp;quot;correct&amp;quot; values and let the GM decide what to do. Another common issue is the creator might have forgotten that a skill is a class skill, leaving it 3 points off.&lt;br /&gt;
&lt;br /&gt;
* Make sure to enter text that&#039;s relevant during combat for the NPC (usually just the &amp;quot;Before Combat&amp;quot;, &amp;quot;Morale&amp;quot;, and &amp;quot;During Combat&amp;quot; sections from the statblock, which should be entered on the NPC tab), but &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; enter any &amp;quot;Character&amp;quot; or &amp;quot;Development&amp;quot; text that appears around the statblock. Text from those sections shouldn&#039;t be included in the Hero Lab portfolio (this is a change from what we&#039;ve done in the past). Statblocks often include adjustments due to actions described in the &amp;quot;Before Combat&amp;quot; section, in which case you should go to the adjust tab and apply appropriate adjustments. If any of these preparations are from personally cast spells, go to the Spells tab and mark those off as cast.&lt;br /&gt;
&lt;br /&gt;
* On the Personal tab, include any portrait of the character from the book. If you can&#039;t extract those images from the PDF using a tool like Photoshop, let us know and we can supply them. If no portrait is provided in the book, just leave it as the default portrait from the Encounter Builder.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 2 - Notes ==&lt;br /&gt;
&lt;br /&gt;
As you work on the module, create a list of any differences between what the module shows, and what Hero Lab shows. For example, if skills are off, note that, and see if you can figure out why it happened - that might lead you to think of a different way to do them so they&#039;ll be correct. This file is important because it will be used by whoever is checking your work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Submission == &lt;br /&gt;
&lt;br /&gt;
Submit both pieces of the project to us - portfolios and notes file. Don&#039;t submit until the portfolios are complete and checked to make sure they&#039;re correct.&lt;br /&gt;
&lt;br /&gt;
= Checking Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
Once both deliverables for an encounter library have been submitted (see above), we&#039;ll a different person to check the work. If you&#039;re checking someone else&#039;s encounter libraries, you need to find places they did something wrong.&lt;br /&gt;
&lt;br /&gt;
Compare the statblocks listed in the module with what&#039;s in Hero Lab - do the details in the module match what&#039;s in HL? If not, consult the notes file you got along with the portfolios and see if the author noticed the problem and provided an explanation. If there is a note about the issue, is it a good one? Can you think of a way to make the statblock match the portfolio better? If there isn&#039;t, make a note of it yourself.&lt;br /&gt;
&lt;br /&gt;
In addition to checking the actual portfolios, check everything from steps #1-3 of the &amp;quot;testing encounter libraries&amp;quot; section below. Make a note of any issues.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve looked over everything in the module, make your list and send it to us. We&#039;ll pass it on to the original author, who will fix things. They should get you a new version of the module once the problems are fixed - once that&#039;s done, verify the issues you noted are fixed, or that you agree with the author on why they shouldn&#039;t be fixed. If there are disagreements, contact us and we&#039;ll resolve them.&lt;br /&gt;
&lt;br /&gt;
= Testing Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 - Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form. On the NPC tab, make sure that the creature doesn&#039;t show any &amp;quot;default&amp;quot; NPC info for the race - that doesn&#039;t apply here, and we don&#039;t want it to show up on the statblock, so delete it.&lt;br /&gt;
&lt;br /&gt;
If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
If you imported a creature from the bestiary, and customized it to fit the statblock in the book, you&#039;ll likely have to delete some of the chunks of info on the NPC tab to make it match the statblock (e.g. the statblock in the book likely won&#039;t show ecology, treasure, etc if it&#039;s for a specific NPC). If you don&#039;t have to customize the creature, the book likely won&#039;t show the statblock, so don&#039;t delete the NPC info.&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do make sure it&#039;s noted down. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 - Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=PreReq_Element_(Data)&amp;diff=3173</id>
		<title>PreReq Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=PreReq_Element_(Data)&amp;diff=3173"/>
		<updated>2017-05-21T16:12:43Z</updated>

		<summary type="html">&lt;p&gt;Colen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{contextmulti|Kit Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;prereq&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
You can establish dependencies wherein certain things require specific conditions to be satisfied by their prospective container in order to be added. These conditions are referred to as [[Pre-Requisites]] and are always tested against the prospective container for a thing. Each pre-requisite is specified through the use of a &amp;quot;prereq&amp;quot; element. The complete list of attributes for this element is below.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|message&lt;br /&gt;
|Text – Specifies the error message displayed to the user within the validation report when the pre-requisite is not satisfied.&lt;br /&gt;
|-&lt;br /&gt;
|iserror&lt;br /&gt;
|(Optional) Boolean – Indicates whether the failing the pre-requisite is considered to an error or merely a warning. This only applies if the user chooses to ignore a failed pre-requisite and add the thing to the container anyways. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|onlyonce&lt;br /&gt;
|(Optional) Boolean – Indicates whether the pre-requisite should only be reported to the user a single time if it fails. This is important for situations where the pre-requisite is assigned to a thing that is added to a container multiple times, such as class levels within the d20 System. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|issilent&lt;br /&gt;
|(Optional) Boolean – Indicates whether the pre-requisite should report an error message to the user if failed. In some cases, you&#039;ll simply want to properly highlight picks as invalid within the interface without reporting individual errors. In such cases, you can have the pre-requisite perform its tests and mark picks as invalid, but suppress any actual message. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;prereq&amp;quot; element also possesses child elements that pertain to the handling of the requirement. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#match|match]]&lt;br /&gt;
|An optional &amp;quot;match&amp;quot; element may appear as defined by the given link. This element defines a [[Match Tag Expression]] that must be satisfied in order for the pre-requisite to be assigned to each thing. If omitted, the pre-requisite is applied to all derived things.&lt;br /&gt;
{{important}}This element is only applicable when the pre-requisite is defined within a component. In all other cases, this element may not be specified.&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#test|test]]&lt;br /&gt;
|An optional &amp;quot;test&amp;quot; element may appear as defined by the given link. This element defines a [[Container Tag Expression]] that determines whether the pre-requisite is satisfied. If omitted, the pre-requisite is assumed to satisfy this test.&lt;br /&gt;
|-&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#validate|validate]]&lt;br /&gt;
|An optional &amp;quot;valid&amp;quot; element may appear as defined by the given link. This element defines a [[Validate Script]] that determines whether the pre-requisite is satisfied. If omitted, the pre-requisite is assumed to satisfy this test.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;match&amp;quot; Element{{anchor|match}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;match&amp;quot; element defines the [[Match Tag Expression|Match tag expression]] that determines whether a particular thing is assigned the pre-requisite. The tag expression is applied against each thing derived from the component, and the pre-requisite is only assigned to things that satisfy the tag expression. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Match tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;test&amp;quot; Element{{anchor|test}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;test&amp;quot; element defines the [[Container Tag Expression|Container tag expression]] that determines whether the pre-requisite is satisfied. The tag expression is applied against all the tags of the container, and the pre-requisite is considered valid if the tag expression is satisfied. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Container tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;validate&amp;quot; Element{{anchor|validate}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;validate&amp;quot; element defines the [[Validate Script|Validate script]] that determines whether the pre-requisite is satisfied. The script is applied against the container, and the pre-requisite is considered valid if the script reports the container as valid. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Validate script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
The following example demonstrates what an &amp;quot;prereq&amp;quot; element might look like. All default values are assumed for optional attributes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  &amp;lt;prereq message=&amp;quot;Requirement Failed.&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;valid&amp;gt;&lt;br /&gt;
      @valid = 1&lt;br /&gt;
      &amp;lt;/valid&amp;gt;&lt;br /&gt;
    &amp;lt;/prereq&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=5th_Edition_Best_Practices&amp;diff=3168</id>
		<title>5th Edition Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=5th_Edition_Best_Practices&amp;diff=3168"/>
		<updated>2017-05-04T20:40:04Z</updated>

		<summary type="html">&lt;p&gt;Colen: Created page with &amp;quot;List goes here!&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List goes here!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3167</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3167"/>
		<updated>2017-03-23T20:50:31Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Deliverable 1 - Create portfolios for every encounter and NPC in the module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== Only use official LWD content when creating data files or portfolios ==&lt;br /&gt;
When building data files or entering portfolios, make sure you don&#039;t have any &amp;quot;third party&amp;quot; data files installed. Content in &amp;quot;third party&amp;quot; data files isn&#039;t available to everyone, and can cause problems with what you&#039;re entering. You can check to make sure you don&#039;t have any installed by going to Tools -&amp;gt; Manage Third Party Updates in Hero Lab.&lt;br /&gt;
&lt;br /&gt;
If you do have third party content installed, you should either delete it before working on stuff for us, or download a separate copy of the Pathfinder game system that you use to work on stuff for us. You can do this by downloading the latest Pathfinder update from the &amp;quot;Find Updates&amp;quot; screen, then changing the folder at the bottom-left of the screen to something like &amp;quot;pathfinder_lwd&amp;quot;. Make sure you edit all portfolios only with the &amp;quot;pathfinder_lwd&amp;quot; version of Pathfinder, to avoid introducing or referencing third party content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Details to Check for Weapons, Armor, Magic Items, and Gear =&lt;br /&gt;
&lt;br /&gt;
* If there is equipment in this book from an exotic source, like high-tech items, or stone-age items, or firearms, in the Configure Hero settings, go to the &amp;quot;Equipment, Weapons &amp;amp; Armor to show&amp;quot; section, and turn on the option(s) that should hide this exotic content.  Then, search the various tables for content from this book, and make sure that it is hidden as intended. If not, set the appropriate tag in the &amp;quot;Special Groupings&amp;quot; list for the category.&lt;br /&gt;
&lt;br /&gt;
* Did you create any new weapons that are helper items or variants of an existing weapon?  If so, add the weapon focus feat, and then double-check that none of the helper weapons show up there as a selection option. (To check this, search for items from the book and make sure that nothing appears in the tables that shouldn&#039;t.)&lt;br /&gt;
&lt;br /&gt;
* In each table where you&#039;ve added new content, filter to only this new book, and look at what categories your new content fits in to - are they sorted under the correct headers?&lt;br /&gt;
&lt;br /&gt;
* Go to the weapons, armor, magic, and gear tabs, and filter for &amp;quot;- no description -&amp;quot; (note the spaces between the - and the words).  Make sure none of the content from your book is among this material - everything new should have a description.&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Entering Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
These guidelines apply to people who are building Hero Lab encounter libraries, typically for Pathfinder Modules and adventure paths.&lt;br /&gt;
&lt;br /&gt;
There are two deliverables which must be submitted before a project is completed, which should be worked on in parallel.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 1 - Create portfolios for every encounter and NPC in the module ==&lt;br /&gt;
&lt;br /&gt;
Every statblock, or partial statblock, printed in the module / adventure path / whatever must have a portfolio created in Hero Lab. The portfolio filenames are what appear in the Encounter Library, so they should be chosen based on the rules in &amp;quot;step 1&amp;quot; of the &amp;quot;testing encounter libraries&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
Please keep the following in mind when entering portfolios:&lt;br /&gt;
&lt;br /&gt;
* Portfolio names &#039;&#039;&#039;must&#039;&#039;&#039; be correct before we accept this deliverable - don&#039;t submit files with names like &amp;quot;encounter1.por&amp;quot; &amp;quot;encounter2.por&amp;quot; etc, as it makes things harder to QA.&lt;br /&gt;
&lt;br /&gt;
* Don&#039;t create a portfolio unless there&#039;s at least a partial statblock present in the module. A partial statblock will typically show the basic stats of the monster, then refer you to a Bestiary - for those, you can import the monster from the encounter builder, and make any changes as required (for example, you might need to apply a template to it, or swap out weapons).&lt;br /&gt;
&lt;br /&gt;
* If an encounter includes multiple copies of an NPC, import that many copies into the portfolio. If you need to make changes (like adding templates) it will probably be easier to make one, apply any changes, then duplicate it from the Portfolio menu instead.&lt;br /&gt;
&lt;br /&gt;
* Some NPCs (e.g. Pavo Vos on page 18 of Fangwood Keep) will need a full Hero Lab character created for them. In those cases, create the character. Don&#039;t create statblocks for NPCs we don&#039;t have enough information about. For example, if the text mentions &amp;quot;Merlin (elf wizard 4) might be hanging around the sanctum&amp;quot;, don&#039;t create an NPC for him - we can&#039;t, because we don&#039;t know anything useful about him to create the NPC with.&lt;br /&gt;
&lt;br /&gt;
* When building an NPC, you&#039;ll need to reverse-engineer the Hero Lab character from the statblock. For example, the character&#039;s hit points will come from a combination of class levels, favored class bonuses, and other sources - use average hit points for the class levels (which on NPCs, alternate from one level to the next). Generally favored class bonuses will be used to add additional hit points, but not always.&lt;br /&gt;
&lt;br /&gt;
* Make sure all characters you create in all portfolios are set to &amp;quot;NPC&amp;quot; and &amp;quot;enemy of the party&amp;quot; on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
* For any NPC in a portfolio (either imported from the encounter builder or created by yourself), check that the statblock output matches what&#039;s shown in the &amp;quot;Output Hero Statblock&amp;quot; window (found in the File menu). If anything there is wrong, try to figure out why - is it a mistake you made, or a mistake made by the authors of the encounter?&lt;br /&gt;
&lt;br /&gt;
* A convenient way to check whether the statblock is correct is to turn on the &amp;quot;statblock summary info window&amp;quot; for the portfolio - you can find it about 80% of the way down the &amp;quot;hero settings&amp;quot; in the configure hero form. Turn on &amp;quot;show full statblock summary window&amp;quot; and the first info window will be replaced by the character statblock. This allows you to check things without having to go to the File menu every time.&lt;br /&gt;
&lt;br /&gt;
* In general, set &amp;quot;base values&amp;quot; before &amp;quot;derived values&amp;quot;. For example, set the character&#039;s ability scores first, then their skills - if you change ability scores after setting their skills, the skill values will change.&lt;br /&gt;
&lt;br /&gt;
* If you make any tweaks to the character after checking the statblock, you need to re-check the statblock for any changes. Remember, if you change an ability score, that can affect skills, ability values, etc. &lt;br /&gt;
&lt;br /&gt;
* Set the &amp;quot;buy for free&amp;quot; checkbox to buy the character&#039;s gear for free, then set their &amp;quot;starting cash&amp;quot; to be any cash the portfolio indicates they have.&lt;br /&gt;
&lt;br /&gt;
* Many NPCs will list &amp;quot;longbow with 20 arrows&amp;quot; for gear - to make that appear correctly on the statblock, add the longbow, add the arrows, then put the arrows &amp;quot;into&amp;quot; the bow using the &amp;quot;gear&amp;quot; button (the little bag) on the arrows.&lt;br /&gt;
&lt;br /&gt;
* Remember to set important things like composite longbow strength bonuses, holy symbol details, etc.&lt;br /&gt;
&lt;br /&gt;
* If you find differences between Hero Lab&#039;s statblock and what&#039;s in the book, try to do what the creators &amp;quot;meant&amp;quot;, even if that means the character will have validation errors. Examples:&lt;br /&gt;
&lt;br /&gt;
# if the character has too many feats or skill points, that&#039;s fine - just do what the module says. The GM will see any errors when they import the portfolio, and it&#039;s up to them what to do about them.&lt;br /&gt;
# If you can&#039;t get the skills to match up for an obvious reason, then don&#039;t worry about the problem. For example, a common issue is that NPCs have too much gear, so they&#039;re encumbered, so their skills in HL are lower than the portfolio says they should be - that&#039;s a case where we should leave them at the &amp;quot;correct&amp;quot; values and let the GM decide what to do. Another common issue is the creator might have forgotten that a skill is a class skill, leaving it 3 points off.&lt;br /&gt;
&lt;br /&gt;
* Make sure to enter text that&#039;s relevant during combat for the NPC (usually just the &amp;quot;Morale&amp;quot; or &amp;quot;During Combat&amp;quot; sections from the statblock, which should be entered on the NPC tab), but &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; enter any &amp;quot;Character&amp;quot; or &amp;quot;Development&amp;quot; text that appears around the statblock. Text from those sections shouldn&#039;t be included in the Hero Lab portfolio (this is a change from what we&#039;ve done in the past).&lt;br /&gt;
&lt;br /&gt;
* On the Personal tab, include any portrait of the character from the book. If you can&#039;t extract those images from the PDF using a tool like Photoshop, let us know and we can supply them. If no portrait is provided in the book, just leave it as the default portrait from the Encounter Builder.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 2 - Notes ==&lt;br /&gt;
&lt;br /&gt;
As you work on the module, create a list of any differences between what the module shows, and what Hero Lab shows. For example, if skills are off, note that, and see if you can figure out why it happened - that might lead you to think of a different way to do them so they&#039;ll be correct. This file is important because it will be used by whoever is checking your work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Submission == &lt;br /&gt;
&lt;br /&gt;
Submit both pieces of the project to us - portfolios and notes file. Don&#039;t submit until the portfolios are complete and checked to make sure they&#039;re correct.&lt;br /&gt;
&lt;br /&gt;
= Checking Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
Once both deliverables for an encounter library have been submitted (see above), we&#039;ll a different person to check the work. If you&#039;re checking someone else&#039;s encounter libraries, you need to find places they did something wrong.&lt;br /&gt;
&lt;br /&gt;
Compare the statblocks listed in the module with what&#039;s in Hero Lab - do the details in the module match what&#039;s in HL? If not, consult the notes file you got along with the portfolios and see if the author noticed the problem and provided an explanation. If there is a note about the issue, is it a good one? Can you think of a way to make the statblock match the portfolio better? If there isn&#039;t, make a note of it yourself.&lt;br /&gt;
&lt;br /&gt;
In addition to checking the actual portfolios, check everything from steps #1-3 of the &amp;quot;testing encounter libraries&amp;quot; section below. Make a note of any issues.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve looked over everything in the module, make your list and send it to us. We&#039;ll pass it on to the original author, who will fix things. They should get you a new version of the module once the problems are fixed - once that&#039;s done, verify the issues you noted are fixed, or that you agree with the author on why they shouldn&#039;t be fixed. If there are disagreements, contact us and we&#039;ll resolve them.&lt;br /&gt;
&lt;br /&gt;
= Testing Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 - Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form. On the NPC tab, make sure that the creature doesn&#039;t show any &amp;quot;default&amp;quot; NPC info for the race - that doesn&#039;t apply here, and we don&#039;t want it to show up on the statblock, so delete it.&lt;br /&gt;
&lt;br /&gt;
If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
If you imported a creature from the bestiary, and customized it to fit the statblock in the book, you&#039;ll likely have to delete some of the chunks of info on the NPC tab to make it match the statblock (e.g. the statblock in the book likely won&#039;t show ecology, treasure, etc if it&#039;s for a specific NPC). If you don&#039;t have to customize the creature, the book likely won&#039;t show the statblock, so don&#039;t delete the NPC info.&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do make sure it&#039;s noted down. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 - Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3166</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3166"/>
		<updated>2017-02-22T17:23:51Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Deliverable 1 - Create portfolios for every encounter and NPC in the module */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== Only use official LWD content when creating data files or portfolios ==&lt;br /&gt;
When building data files or entering portfolios, make sure you don&#039;t have any &amp;quot;third party&amp;quot; data files installed. Content in &amp;quot;third party&amp;quot; data files isn&#039;t available to everyone, and can cause problems with what you&#039;re entering. You can check to make sure you don&#039;t have any installed by going to Tools -&amp;gt; Manage Third Party Updates in Hero Lab.&lt;br /&gt;
&lt;br /&gt;
If you do have third party content installed, you should either delete it before working on stuff for us, or download a separate copy of the Pathfinder game system that you use to work on stuff for us. You can do this by downloading the latest Pathfinder update from the &amp;quot;Find Updates&amp;quot; screen, then changing the folder at the bottom-left of the screen to something like &amp;quot;pathfinder_lwd&amp;quot;. Make sure you edit all portfolios only with the &amp;quot;pathfinder_lwd&amp;quot; version of Pathfinder, to avoid introducing or referencing third party content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Details to Check for Weapons, Armor, Magic Items, and Gear =&lt;br /&gt;
&lt;br /&gt;
* If there is equipment in this book from an exotic source, like high-tech items, or stone-age items, or firearms, in the Configure Hero settings, go to the &amp;quot;Equipment, Weapons &amp;amp; Armor to show&amp;quot; section, and turn on the option(s) that should hide this exotic content.  Then, search the various tables for content from this book, and make sure that it is hidden as intended. If not, set the appropriate tag in the &amp;quot;Special Groupings&amp;quot; list for the category.&lt;br /&gt;
&lt;br /&gt;
* Did you create any new weapons that are helper items or variants of an existing weapon?  If so, add the weapon focus feat, and then double-check that none of the helper weapons show up there as a selection option. (To check this, search for items from the book and make sure that nothing appears in the tables that shouldn&#039;t.)&lt;br /&gt;
&lt;br /&gt;
* In each table where you&#039;ve added new content, filter to only this new book, and look at what categories your new content fits in to - are they sorted under the correct headers?&lt;br /&gt;
&lt;br /&gt;
* Go to the weapons, armor, magic, and gear tabs, and filter for &amp;quot;- no description -&amp;quot; (note the spaces between the - and the words).  Make sure none of the content from your book is among this material - everything new should have a description.&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Entering Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
These guidelines apply to people who are building Hero Lab encounter libraries, typically for Pathfinder Modules and adventure paths.&lt;br /&gt;
&lt;br /&gt;
There are two deliverables which must be submitted before a project is completed, which should be worked on in parallel.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 1 - Create portfolios for every encounter and NPC in the module ==&lt;br /&gt;
&lt;br /&gt;
Every statblock, or partial statblock, printed in the module / adventure path / whatever must have a portfolio created in Hero Lab. The portfolio filenames are what appear in the Encounter Library, so they should be chosen based on the rules in &amp;quot;step 1&amp;quot; of the &amp;quot;testing encounter libraries&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
Please keep the following in mind when entering portfolios:&lt;br /&gt;
&lt;br /&gt;
* Portfolio names &#039;&#039;&#039;must&#039;&#039;&#039; be correct before we accept this deliverable - don&#039;t submit files with names like &amp;quot;encounter1.por&amp;quot; &amp;quot;encounter2.por&amp;quot; etc, as it makes things harder to QA.&lt;br /&gt;
&lt;br /&gt;
* Don&#039;t create a portfolio unless there&#039;s at least a partial statblock present in the module. A partial statblock will typically show the basic stats of the monster, then refer you to a Bestiary - for those, you can import the monster from the encounter builder, and make any changes as required (for example, you might need to apply a template to it, or swap out weapons).&lt;br /&gt;
&lt;br /&gt;
* If an encounter includes multiple copies of an NPC, import that many copies into the portfolio. If you need to make changes (like adding templates) it will probably be easier to make one, apply any changes, then duplicate it from the Portfolio menu instead.&lt;br /&gt;
&lt;br /&gt;
* Some NPCs (e.g. Pavo Vos on page 18 of Fangwood Keep) will need a full Hero Lab character created for them. In those cases, create the character. Don&#039;t create statblocks for NPCs we don&#039;t have enough information about. For example, if the text mentions &amp;quot;Merlin (elf wizard 4) might be hanging around the sanctum&amp;quot;, don&#039;t create an NPC for him - we can&#039;t, because we don&#039;t know anything useful about him to create the NPC with.&lt;br /&gt;
&lt;br /&gt;
* When building an NPC, you&#039;ll need to reverse-engineer the Hero Lab character from the statblock. For example, the character&#039;s hit points will come from a combination of class levels, favored class bonuses, and other sources - use average hit points for the class levels (which on NPCs, alternate from one level to the next). Generally favored class bonuses will be used to add additional hit points, but not always.&lt;br /&gt;
&lt;br /&gt;
* Make sure all characters you create in all portfolios are set to &amp;quot;NPC&amp;quot; and &amp;quot;enemy of the party&amp;quot; on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
* For any NPC in a portfolio (either imported from the encounter builder or created by yourself), check that the statblock output matches what&#039;s shown in the &amp;quot;Output Hero Statblock&amp;quot; window (found in the File menu). If anything there is wrong, try to figure out why - is it a mistake you made, or a mistake made by the authors of the encounter?&lt;br /&gt;
&lt;br /&gt;
* A convenient way to check whether the statblock is correct is to turn on the &amp;quot;statblock summary info window&amp;quot; for the portfolio - you can find it about 80% of the way down the &amp;quot;hero settings&amp;quot; in the configure hero form. Turn on &amp;quot;show full statblock summary window&amp;quot; and the first info window will be replaced by the character statblock. This allows you to check things without having to go to the File menu every time.&lt;br /&gt;
&lt;br /&gt;
* In general, set &amp;quot;base values&amp;quot; before &amp;quot;derived values&amp;quot;. For example, set the character&#039;s ability scores first, then their skills - if you change ability scores after setting their skills, the skill values will change.&lt;br /&gt;
&lt;br /&gt;
* If you make any tweaks to the character after checking the statblock, you need to re-check the statblock for any changes. Remember, if you change an ability score, that can affect skills, ability values, etc. &lt;br /&gt;
&lt;br /&gt;
* Set the &amp;quot;buy for free&amp;quot; checkbox to buy the character&#039;s gear for free, then set their &amp;quot;starting cash&amp;quot; to be any cash the portfolio indicates they have.&lt;br /&gt;
&lt;br /&gt;
* Many NPCs will list &amp;quot;longbow with 20 arrows&amp;quot; for gear - to make that appear correctly on the statblock, add the longbow, add the arrows, then put the arrows &amp;quot;into&amp;quot; the bow using the &amp;quot;gear&amp;quot; button (the little bag) on the arrows.&lt;br /&gt;
&lt;br /&gt;
* Remember to set important things like composite longbow strength bonuses, holy symbol details, etc.&lt;br /&gt;
&lt;br /&gt;
* If you find differences between Hero Lab&#039;s statblock and what&#039;s in the book, try to do what the creators &amp;quot;meant&amp;quot;, even if that means the character will have validation errors. Examples:&lt;br /&gt;
&lt;br /&gt;
# if the character has too many feats or skill points, that&#039;s fine - just do what the module says. The GM will see any errors when they import the portfolio, and it&#039;s up to them what to do about them.&lt;br /&gt;
# If you can&#039;t get the skills to match up for an obvious reason, then don&#039;t worry about the problem. For example, a common issue is that NPCs have too much gear, so they&#039;re encumbered, so their skills in HL are lower than the portfolio says they should be - that&#039;s a case where we should leave them at the &amp;quot;correct&amp;quot; values and let the GM decide what to do. Another common issue is the creator might have forgotten that a skill is a class skill, leaving it 3 points off.&lt;br /&gt;
&lt;br /&gt;
* Make sure to enter text that&#039;s relevant during combat for the NPC (usually just the &amp;quot;Morale&amp;quot; or &amp;quot;During Combat&amp;quot; sections from the statblock, which should be entered on the NPC tab), but &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; enter any &amp;quot;Character&amp;quot; or &amp;quot;Development&amp;quot; text that appears around the statblock. Text from those sections shouldn&#039;t be included in the Hero Lab portfolio (this is a change from what we&#039;ve done in the past).&lt;br /&gt;
&lt;br /&gt;
== Deliverable 2 - Notes ==&lt;br /&gt;
&lt;br /&gt;
As you work on the module, create a list of any differences between what the module shows, and what Hero Lab shows. For example, if skills are off, note that, and see if you can figure out why it happened - that might lead you to think of a different way to do them so they&#039;ll be correct. This file is important because it will be used by whoever is checking your work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Submission == &lt;br /&gt;
&lt;br /&gt;
Submit both pieces of the project to us - portfolios and notes file. Don&#039;t submit until the portfolios are complete and checked to make sure they&#039;re correct.&lt;br /&gt;
&lt;br /&gt;
= Checking Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
Once both deliverables for an encounter library have been submitted (see above), we&#039;ll a different person to check the work. If you&#039;re checking someone else&#039;s encounter libraries, you need to find places they did something wrong.&lt;br /&gt;
&lt;br /&gt;
Compare the statblocks listed in the module with what&#039;s in Hero Lab - do the details in the module match what&#039;s in HL? If not, consult the notes file you got along with the portfolios and see if the author noticed the problem and provided an explanation. If there is a note about the issue, is it a good one? Can you think of a way to make the statblock match the portfolio better? If there isn&#039;t, make a note of it yourself.&lt;br /&gt;
&lt;br /&gt;
In addition to checking the actual portfolios, check everything from steps #1-3 of the &amp;quot;testing encounter libraries&amp;quot; section below. Make a note of any issues.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve looked over everything in the module, make your list and send it to us. We&#039;ll pass it on to the original author, who will fix things. They should get you a new version of the module once the problems are fixed - once that&#039;s done, verify the issues you noted are fixed, or that you agree with the author on why they shouldn&#039;t be fixed. If there are disagreements, contact us and we&#039;ll resolve them.&lt;br /&gt;
&lt;br /&gt;
= Testing Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 - Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form. On the NPC tab, make sure that the creature doesn&#039;t show any &amp;quot;default&amp;quot; NPC info for the race - that doesn&#039;t apply here, and we don&#039;t want it to show up on the statblock, so delete it.&lt;br /&gt;
&lt;br /&gt;
If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
If you imported a creature from the bestiary, and customized it to fit the statblock in the book, you&#039;ll likely have to delete some of the chunks of info on the NPC tab to make it match the statblock (e.g. the statblock in the book likely won&#039;t show ecology, treasure, etc if it&#039;s for a specific NPC). If you don&#039;t have to customize the creature, the book likely won&#039;t show the statblock, so don&#039;t delete the NPC info.&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do make sure it&#039;s noted down. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 - Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3163</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3163"/>
		<updated>2017-01-08T00:58:55Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* General Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== Only use official LWD content when creating data files or portfolios ==&lt;br /&gt;
When building data files or entering portfolios, make sure you don&#039;t have any &amp;quot;third party&amp;quot; data files installed. Content in &amp;quot;third party&amp;quot; data files isn&#039;t available to everyone, and can cause problems with what you&#039;re entering. You can check to make sure you don&#039;t have any installed by going to Tools -&amp;gt; Manage Third Party Updates in Hero Lab.&lt;br /&gt;
&lt;br /&gt;
If you do have third party content installed, you should either delete it before working on stuff for us, or download a separate copy of the Pathfinder game system that you use to work on stuff for us. You can do this by downloading the latest Pathfinder update from the &amp;quot;Find Updates&amp;quot; screen, then changing the folder at the bottom-left of the screen to something like &amp;quot;pathfinder_lwd&amp;quot;. Make sure you edit all portfolios only with the &amp;quot;pathfinder_lwd&amp;quot; version of Pathfinder, to avoid introducing or referencing third party content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Details to Check for Weapons, Armor, Magic Items, and Gear =&lt;br /&gt;
&lt;br /&gt;
* If there is equipment in this book from an exotic source, like high-tech items, or stone-age items, or firearms, in the Configure Hero settings, go to the &amp;quot;Equipment, Weapons &amp;amp; Armor to show&amp;quot; section, and turn on the option(s) that should hide this exotic content.  Then, search the various tables for content from this book, and make sure that it is hidden as intended. If not, set the appropriate tag in the &amp;quot;Special Groupings&amp;quot; list for the category.&lt;br /&gt;
&lt;br /&gt;
* Did you create any new weapons that are helper items or variants of an existing weapon?  If so, add the weapon focus feat, and then double-check that none of the helper weapons show up there as a selection option. (To check this, search for items from the book and make sure that nothing appears in the tables that shouldn&#039;t.)&lt;br /&gt;
&lt;br /&gt;
* In each table where you&#039;ve added new content, filter to only this new book, and look at what categories your new content fits in to - are they sorted under the correct headers?&lt;br /&gt;
&lt;br /&gt;
* Go to the weapons, armor, magic, and gear tabs, and filter for &amp;quot;- no description -&amp;quot; (note the spaces between the - and the words).  Make sure none of the content from your book is among this material - everything new should have a description.&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Entering Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
These guidelines apply to people who are building Hero Lab encounter libraries, typically for Pathfinder Modules and adventure paths.&lt;br /&gt;
&lt;br /&gt;
There are two deliverables which must be submitted before a project is completed, which should be worked on in parallel.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 1 - Create portfolios for every encounter and NPC in the module ==&lt;br /&gt;
&lt;br /&gt;
Every statblock, or partial statblock, printed in the module / adventure path / whatever must have a portfolio created in Hero Lab. The portfolio filenames are what appear in the Encounter Library, so they should be chosen based on the rules in &amp;quot;step 1&amp;quot; of the &amp;quot;testing encounter libraries&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
Portfolio names &#039;&#039;&#039;must&#039;&#039;&#039; be correct before we accept this deliverable - don&#039;t submit files with names like &amp;quot;encounter1.por&amp;quot; &amp;quot;encounter2.por&amp;quot; etc, as it makes things harder to QA.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t create a portfolio unless there&#039;s at least a partial statblock present in the module. A partial statblock will typically show the basic stats of the monster, then refer you to a Bestiary - for those, you can import the monster from the encounter builder, and make any changes as required (for example, you might need to apply a template to it, or swap out weapons).&lt;br /&gt;
&lt;br /&gt;
If an encounter includes multiple copies of an NPC, import that many copies into the portfolio. If you need to make changes (like adding templates) it will probably be easier to make one, apply any changes, then duplicate it from the Portfolio menu instead.&lt;br /&gt;
&lt;br /&gt;
Some NPCs (e.g. Pavo Vos on page 18 of Fangwood Keep) will need a full Hero Lab character created for them. In those cases, create the character. Don&#039;t create statblocks for NPCs we don&#039;t have enough information about. For example, if the text mentions &amp;quot;Merlin (elf wizard 4) might be hanging around the sanctum&amp;quot;, don&#039;t create an NPC for him - we can&#039;t, because we don&#039;t know anything useful about him to create the NPC with.&lt;br /&gt;
&lt;br /&gt;
When building an NPC, you&#039;ll need to reverse-engineer the Hero Lab character from the statblock. For example, the character&#039;s hit points will come from a combination of class levels, favored class bonuses, and other sources - use average hit points for the class levels (which on NPCs, alternate from one level to the next). Generally favored class bonuses will be used to add additional hit points, but not always.&lt;br /&gt;
&lt;br /&gt;
Make sure all characters you create in all portfolios are set to &amp;quot;NPC&amp;quot; and &amp;quot;enemy of the party&amp;quot; on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
For any NPC in a portfolio (either imported from the encounter builder or created by yourself), check that the statblock output matches what&#039;s shown in the &amp;quot;Output Hero Statblock&amp;quot; window (found in the File menu). If anything there is wrong, try to figure out why - is it a mistake you made, or a mistake made by the authors of the encounter?&lt;br /&gt;
&lt;br /&gt;
A convenient way to check whether the statblock is correct is to turn on the &amp;quot;statblock summary info window&amp;quot; for the portfolio - you can find it about 80% of the way down the &amp;quot;hero settings&amp;quot; in the configure hero form. Turn on &amp;quot;show full statblock summary window&amp;quot; and the first info window will be replaced by the character statblock. This allows you to check things without having to go to the File menu every time.&lt;br /&gt;
&lt;br /&gt;
In general, set &amp;quot;base values&amp;quot; before &amp;quot;derived values&amp;quot;. For example, set the character&#039;s ability scores first, then their skills - if you change ability scores after setting their skills, the skill values will change.&lt;br /&gt;
&lt;br /&gt;
If you make any tweaks to the character after checking the statblock, you need to re-check the statblock for any changes. Remember, if you change an ability score, that can affect skills, ability values, etc. &lt;br /&gt;
&lt;br /&gt;
Set the &amp;quot;buy for free&amp;quot; checkbox to buy the character&#039;s gear for free, then set their &amp;quot;starting cash&amp;quot; to be any cash the portfolio indicates they have.&lt;br /&gt;
&lt;br /&gt;
Many NPCs will list &amp;quot;longbow with 20 arrows&amp;quot; for gear - to make that appear correctly on the statblock, add the longbow, add the arrows, then put the arrows &amp;quot;into&amp;quot; the bow using the &amp;quot;gear&amp;quot; button (the little bag) on the arrows.&lt;br /&gt;
&lt;br /&gt;
Remember to set important things like composite longbow strength bonuses, holy symbol details, etc.&lt;br /&gt;
&lt;br /&gt;
If you find differences between Hero Lab&#039;s statblock and what&#039;s in the book, try to do what the creators &amp;quot;meant&amp;quot;, even if that means the character will have validation errors. Examples:&lt;br /&gt;
&lt;br /&gt;
1) if the character has too many feats or skill points, that&#039;s fine - just do what the module says. The GM will see any errors when they import the portfolio, and it&#039;s up to them what to do about them.&lt;br /&gt;
&lt;br /&gt;
2) If you can&#039;t get the skills to match up for an obvious reason, then don&#039;t worry about the problem. For example, a common issue is that NPCs have too much gear, so they&#039;re encumbered, so their skills in HL are lower than the portfolio says they should be - that&#039;s a case where we should leave them at the &amp;quot;correct&amp;quot; values and let the GM decide what to do. Another common issue is the creator might have forgotten that a skill is a class skill, leaving it 3 points off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Deliverable 2 - Notes ==&lt;br /&gt;
&lt;br /&gt;
As you work on the module, create a list of any differences between what the module shows, and what Hero Lab shows. For example, if skills are off, note that, and see if you can figure out why it happened - that might lead you to think of a different way to do them so they&#039;ll be correct. This file is important because it will be used by whoever is checking your work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Submission == &lt;br /&gt;
&lt;br /&gt;
Submit both pieces of the project to us - portfolios and notes file. Don&#039;t submit until the portfolios are complete and checked to make sure they&#039;re correct.&lt;br /&gt;
&lt;br /&gt;
= Checking Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
Once both deliverables for an encounter library have been submitted (see above), we&#039;ll a different person to check the work. If you&#039;re checking someone else&#039;s encounter libraries, you need to find places they did something wrong.&lt;br /&gt;
&lt;br /&gt;
Compare the statblocks listed in the module with what&#039;s in Hero Lab - do the details in the module match what&#039;s in HL? If not, consult the notes file you got along with the portfolios and see if the author noticed the problem and provided an explanation. If there is a note about the issue, is it a good one? Can you think of a way to make the statblock match the portfolio better? If there isn&#039;t, make a note of it yourself.&lt;br /&gt;
&lt;br /&gt;
In addition to checking the actual portfolios, check everything from steps #1-3 of the &amp;quot;testing encounter libraries&amp;quot; section below. Make a note of any issues.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve looked over everything in the module, make your list and send it to us. We&#039;ll pass it on to the original author, who will fix things. They should get you a new version of the module once the problems are fixed - once that&#039;s done, verify the issues you noted are fixed, or that you agree with the author on why they shouldn&#039;t be fixed. If there are disagreements, contact us and we&#039;ll resolve them.&lt;br /&gt;
&lt;br /&gt;
= Testing Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 - Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form. On the NPC tab, make sure that the creature doesn&#039;t show any &amp;quot;default&amp;quot; NPC info for the race - that doesn&#039;t apply here, and we don&#039;t want it to show up on the statblock, so delete it.&lt;br /&gt;
&lt;br /&gt;
If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
If you imported a creature from the bestiary, and customized it to fit the statblock in the book, you&#039;ll likely have to delete some of the chunks of info on the NPC tab to make it match the statblock (e.g. the statblock in the book likely won&#039;t show ecology, treasure, etc if it&#039;s for a specific NPC). If you don&#039;t have to customize the creature, the book likely won&#039;t show the statblock, so don&#039;t delete the NPC info.&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do make sure it&#039;s noted down. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 - Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=ChooserTable_Element_(Data)&amp;diff=3162</id>
		<title>ChooserTable Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=ChooserTable_Element_(Data)&amp;diff=3162"/>
		<updated>2017-01-03T18:43:24Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* The &amp;quot;chooser_table&amp;quot; Element */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference|Portal Element (Data)}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;chooser_table&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
Choosers are similar to thing-based menus in some ways, as they allow the user to select one thing or pick from a list that is determined dynamically. One key difference with choosers is that any selected thing/pick is added to the container as a new pick. If a pick is selected, a new pick derived from the same thing is added. Another key difference is that the available things/picks are displayed for selection in a &amp;quot;choose form&amp;quot;, allowing each object to be presented with detailed information. The &amp;quot;chooser&amp;quot; mechanism is ideal for selecting facets like race, profession, archetype, etc. Each chooser is defined via the use of the &amp;quot;chooser_table&amp;quot; element. The complete list of attributes for this element is below.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|component&lt;br /&gt;
|Id – Specifies the unique id of the component that all selectable objects must be derived from. &lt;br /&gt;
|-&lt;br /&gt;
|choosetemplate&lt;br /&gt;
|Id – Specifies the unique id of the template to be used for displaying selectable objects.&lt;br /&gt;
|-&lt;br /&gt;
|choosepicks&lt;br /&gt;
|(Optional) Set – Designates whether the selectable objects consist of things or picks, and, if the latter, where the list of picks is retrieved from. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;thing – The selectable objects are things.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The selectable objects are picks from the implicitly identified container. If the containing scene is a form associated with a gizmo, the gizmo is used, else the actor is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The selectable objects are picks from the active actor.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;actor – Same as &amp;quot;hero&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;thing&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|choosesortset&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the sort set to be used for sequencing all of the objects presented for selection. If empty, all objects are sorted by name. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|choosegapx&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the X-axis to insert between items presented for selection. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|choosegapy&lt;br /&gt;
|(Optional) Integer – Specifies the gap along the Y-axis to insert between items presented for selection. Default: &amp;quot;0&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|descwidth&lt;br /&gt;
|(Optional) Integer – Specifies the width of the reserved &amp;quot;description&amp;quot; area on the right within the choose form. Some items need more width for lengthy descriptions and some do not, so you can control this as you see fit. Default: &amp;quot;250&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|buytemplate&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the template to be shown in the lower right corner of the choose form for controlling the details of a purchase transaction. If empty, no buy template is utilized. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|xactspecial&lt;br /&gt;
|(Optional) Integer – When a buy template is shared between two or more portals or things, the template behavior may need to be tailored based on the usage. If this need arises, this attribute specifies a unique value that identifies this particular usage. By assigning a different value to each usage and keying on it within the template&#039;s Position script, you can tailor the template appropriately. Default: &amp;quot;0&amp;quot;. &lt;br /&gt;
|-&lt;br /&gt;
|linkage&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a thing that will be used as a linkage. When a new pick is added via the chooser, that pick has an automatic linkage setup to any existing pick derived from the specified thing. If no derived pick exists when the new pick is added, no linkage is ever created. If empty, no linkage is established. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showupdate&lt;br /&gt;
|(Optional) Boolean – Indicates whether the chooser needs to be dynamically updated after any modification to the actor so that the influence of other changes are always visually reflected to the user, such as through color highlighting. Default: &amp;quot;no&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
{{note}}This option can significantly slow down display updates on slower computers, so only enable this if truly necessary.&lt;br /&gt;
|-&lt;br /&gt;
|candidatepick&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a pick that will contain a dynamically generated [[Candidate Tag Expression|Candidate tag expression]] for use in determining the list of available objects to choose from. If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|candidatefield&lt;br /&gt;
|(Optional) Id – Specifies the unique id of a text-based field that contains the [[Candidate Tag Expression|Candidate tag expression]] used to determine the list of available objects to choose from. This field must exist within the pick identified by the &amp;quot;candidatepick&amp;quot; attribute (above). If empty, the &amp;quot;candidate&amp;quot; child element defines the tag expression to use. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|prereqtarget&lt;br /&gt;
|(Optional) Set – Designates the container against which all pre-requisite tests need to be performed when determining the list of items available for selection. When displacement is utilized, pre-requisites need to be tested against the container to which the new picks will ultimately be added. Must be one of these values:&lt;br /&gt;
&amp;lt;ul class=&amp;quot;sets&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;container – The default parent container is used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;parent – The next parent up the hierarchy is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hero – The top-level hero is used, which parallels the corresponding displacement target.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Default: &amp;quot;container&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|empty&lt;br /&gt;
|(Optional) Text – Specifies the text message to be displayed if the user attempts to select an option and there are no available items to choose from. If empty, a default message is displayed. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|showlabel&lt;br /&gt;
|(Optional) Boolean – (iPad only) Indicates whether the label displaying the current selection of the menu should be shown. This is used when you just want the menu control to be used as a button to make a selection which will be displayed some other way. Default: &amp;quot;yes&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{note}}Choosers possess a &amp;quot;buy&amp;quot; template, but there is no way to properly &amp;quot;sell&amp;quot; an item selected via a chooser. The reason for this is to allow the &amp;quot;buy&amp;quot; template to be used for customization purposes instead of actually buying and selling gear. The same mechanism can be used to allow the user to configure the item selected via the chooser, such as providing an edit or menu portal to specify an important facet of the selected item.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;chooser_table&amp;quot; element also possesses child elements that define additional behaviors of the portal. The list of these child elements is below and must appear in the order shown. Click on the link to access the details for each element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|[[#candidate|candidate]]&lt;br /&gt;
|An optional &amp;quot;candidate&amp;quot; element may appear as defined by the given link. This element defines a [[Candidate Tag Expression]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#needtag|needtag]]&lt;br /&gt;
|Zero or more &amp;quot;needtag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#denytag|denytag]]&lt;br /&gt;
|Zero or more &amp;quot;denytag&amp;quot; elements may appear as defined by the given link. This element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between a prospective object and the container in order to list the object among the available items.&lt;br /&gt;
|-&lt;br /&gt;
|[[#xacttag|xacttag]]&lt;br /&gt;
|Zero or more &amp;quot;xacttag&amp;quot; elements may appear as defined by the given link. This element defines a tag that is assigned to the transaction pick while the choose form is visible.&lt;br /&gt;
|-&lt;br /&gt;
|[[#secondary|secondary]]&lt;br /&gt;
|An optional &amp;quot;secondary&amp;quot; element may appear as defined by the given link. This element defines a [[Secondary Tag Expression]] that is associated with every new pick added via the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#existence|existence]]&lt;br /&gt;
|An optional &amp;quot;existence&amp;quot; element may appear as defined by the given link. This element defines an [[Existence Tag Expression]] that is associated with every new pick added via the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[AutoTag Element (Data)|autotag]]&lt;br /&gt;
|Zero or more &amp;quot;autotag&amp;quot; elements may appear as defined by the given link. This element specifies tags that are automatically assigned to each added thing.&lt;br /&gt;
|-&lt;br /&gt;
|[[#chosen|chosen]]&lt;br /&gt;
|An optional &amp;quot;chosen&amp;quot; element may appear as defined by the given link. This element defines a [[Chosen Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#titlebar|titlebar]]&lt;br /&gt;
|An optional &amp;quot;titlebar&amp;quot; element may appear as defined by the given link. This element defines a [[TitleBar Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#description|description]]&lt;br /&gt;
|An optional &amp;quot;description&amp;quot; element may appear as defined by the given link. This element defines a [[Description Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|[[#change|change]]&lt;br /&gt;
|An optional &amp;quot;change&amp;quot; element may appear as defined by the given link. This element defines a [[Change Script]] for the portal.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;candidate&amp;quot; Element{{anchor|candidate}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;candidate&amp;quot; element defines a [[Candidate Tag Expression]] for the portal that limits the set of things/picks that are available for selection. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Candidate tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;needtag&amp;quot; Element{{anchor|needtag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;needtag&amp;quot; element defines a tag relationship that must exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it has at least one matching tag with the same id in a separate tag group. If the tag is not found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;denytag&amp;quot; Element{{anchor|denytag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;denytag&amp;quot; element defines a tag relationship that must &#039;&#039;&#039;not&#039;&#039;&#039; exist between the object to be added and the prospective container. Tags from one tag group are enumerated within the container, then the object is tested to make sure that it does not possess any matching tags with the same ids in a separate tag group. If any matching tags are found, the object is not valid for selection and omitted from the available list. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|container&lt;br /&gt;
|Id – Specifies the unique id of the tag group to utilize within the container.&lt;br /&gt;
|-&lt;br /&gt;
|thing&lt;br /&gt;
|Id – Specifies the unique id of the tag group to check within the thing/pick.&lt;br /&gt;
|-&lt;br /&gt;
|usehero&lt;br /&gt;
|(Optional) Boolean – Indicates whether the container tags are pulled from the prospective container for the new pick or the hero. This distinction can be important when using displacement. Default: &amp;quot;no&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;xacttag&amp;quot; Element{{anchor|xacttag}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;xacttag&amp;quot; element specifies a tag that is automatically added to the transaction pick while the choose form is shown. These tags allow you to indicate contextual information about where the buy template is being used so that you can tailor the behavior appropriately. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|tag&lt;br /&gt;
|Id – Specifies the unique id of the tag to define within the tag group &amp;quot;transact&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;secondary&amp;quot; Element{{anchor|secondary}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;secondary&amp;quot; element defines a [[Secondary Tag Expression]] that is automatically associated with every new pick added via the portal. This new tag expression is treated like an additional [[Container Tag Expression]] for the pick that must also be satisfied. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;existence&amp;quot; Element{{anchor|existence}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;existence&amp;quot; element defines an [[Existence Tag Expression]] that is automatically associated with every new pick added via the portal. If a pick ever fails to satisfy the tag expression during an evaluation cycle, the pick is automatically deleted. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|phase&lt;br /&gt;
|(Optional) Id – Specifies the unique id of the evaluation phase during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|priority&lt;br /&gt;
|Integer – Specifies the evaluation priority during which the tag expression is tested. If empty, the default timing is used from the definition file. Default: Empty.&lt;br /&gt;
|-&lt;br /&gt;
|PCDATA&lt;br /&gt;
|TagExpr – Specifies the code comprising the Secondary tag expression.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;chosen&amp;quot; Element{{anchor|chosen}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;chosen&amp;quot; element defines a [[Chosen Script]] for the portal, which synthesizes the text to be displayed as the chosen item within the portal. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Chosen script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;titlebar&amp;quot; Element{{anchor|titlebar}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;titlebar&amp;quot; element defines a [[TitleBar Script]] for the portal, which synthesizes the text to be displayed at the top of the choose form. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the TitleBar script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;description&amp;quot; Element{{anchor|description}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;description&amp;quot; element defines a [[Description Script]] for the portal, which synthesizes the text to be displayed within the description region of the choose form for the currently selected item on the left. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Description script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;change&amp;quot; Element{{anchor|change}}==&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;change&amp;quot; element defines a [[Change Script]] for the portal that is invoked whenever the user selects a new choice from the list of options. This script allows the implications of the new selection to be integrated and the display updated. The complete list of attributes for this element is below. &lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|PCDATA&lt;br /&gt;
|Script – Specifies the code comprising the Change script.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
The following example demonstrates what a choosertable portal might look like. All default values are assumed for optional attributes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;portal id=&amp;quot;stRace&amp;quot; style=&amp;quot;chsNormal&amp;quot; width=&amp;quot;110&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;chooser_table component=&amp;quot;Race&amp;quot; choosetemplate=&amp;quot;LargeItem&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;chosen&amp;gt;&amp;lt;![CDATA[&lt;br /&gt;
      if (@ispick = 0) then&lt;br /&gt;
        @text = &amp;quot;{text ff0000}Select Race&amp;quot;&lt;br /&gt;
      else&lt;br /&gt;
        @text = &amp;quot;Race: &amp;quot; &amp;amp; field[name].text&lt;br /&gt;
        endif&lt;br /&gt;
      ]]&amp;gt;&amp;lt;/chosen&amp;gt;&lt;br /&gt;
    &amp;lt;titlebar&amp;gt;&lt;br /&gt;
      @text = &amp;quot;Choose the race for your character&amp;quot;&lt;br /&gt;
      &amp;lt;/titlebar&amp;gt;&lt;br /&gt;
    &amp;lt;/chooser_table&amp;gt;&lt;br /&gt;
  &amp;lt;/portal&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=5th_Edition_SRD_Best_Practices&amp;diff=3161</id>
		<title>5th Edition SRD Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=5th_Edition_SRD_Best_Practices&amp;diff=3161"/>
		<updated>2016-12-14T14:59:39Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* First Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Unique Id Prefix =&lt;br /&gt;
When choosing unique ids for the things you&#039;re creating, you should include a two-letter prefix for any things from a different publisher. This helps avoid &amp;quot;unique id collisions&amp;quot; with content that users have entered themselves, because they&#039;re unlikely to have used the same prefix as a publisher does.&lt;br /&gt;
&lt;br /&gt;
This prefix can be set in the editor, by going to Tools -&amp;gt; Set User Identifier. It should come after the &amp;quot;type&amp;quot; of the thing, so for example the id for a Kobold Press feat would start &amp;quot;fKP&amp;quot;, like &amp;quot;fKPPowAtt&amp;quot; for Power Attack from Kobold Press.&lt;br /&gt;
&lt;br /&gt;
Here is the current list of id prefixes for different publishers:&lt;br /&gt;
&lt;br /&gt;
* FG - Frog God Games&lt;br /&gt;
* GR - Green Ronin Publishing&lt;br /&gt;
* HG - Hammerdog Games&lt;br /&gt;
* KP - Kobold Press&lt;br /&gt;
* LG - Legendary Games&lt;br /&gt;
* RP - Rite Publishing&lt;br /&gt;
&lt;br /&gt;
Make sure the unique id prefix is set correctly for every thing you submit.&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives resistance to fire damage.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Weapon Training, Expertise&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability grants advantage on saving throws against being frightened&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Brave, Tinker&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a bonus action, this ability grants a bonus on melee weapon damage rolls for one minute.&lt;br /&gt;
::Sample Rage&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Feats&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Subraces&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in the 5th Edition SRD (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== First Steps ==&lt;br /&gt;
While there are many steps in creating a race, certain things are important to handle first, because they factor into many other things.&lt;br /&gt;
:Ability modifiers&lt;br /&gt;
:Challenge Rating/CR&lt;br /&gt;
:Size&lt;br /&gt;
:Number of Hit Dice (If a creature&#039;s Hit Dice are not the standard size for the race&#039;s size, these need to be set as well.)&lt;br /&gt;
&lt;br /&gt;
An optional but highly recommended step is to turn on one of the &amp;quot;Show stat block&amp;quot; options on the configure hero screen. This will show you the race&#039;s stat block and make it easier to spot differences. Note that you will have to reload before any changes take effect, either the full dataset with the Quick Reload shortcut, Ctrl+R, or only the specific race using the Test Now button in the editor.&lt;br /&gt;
&lt;br /&gt;
== Race Descriptions ==&lt;br /&gt;
&lt;br /&gt;
If the race has a short description at the top of the page, like many monsters in the Tome of Beasts do (usually in italics), enter that short description text in the new &amp;quot;Description Text&amp;quot; field in the editor, instead of the main description text. This allows us to display it as summary text in front of the statblock.&lt;br /&gt;
&lt;br /&gt;
== Spellcasting /Innate Spellcasting ==&lt;br /&gt;
If a creature has the Spellcasting or Innate Spellcasting special abilities, these helper abilites will need to be bootstrapped separately from the spells the creature can cast. A custom header can be set using the rSplHead field on the race. (If a creature has &#039;&#039;&#039;both&#039;&#039;&#039; Spellcasting and Innate Spellcasting, then separate custom headers for each ability will need to be set using the CustDesc the helper abilities.) The following substitution tokens are recognized by the script that generates the spell headers:&lt;br /&gt;
: #name# - Creature&#039;s  name. Defaults to the race name, if something else is wanted set it in the abText field on the bootstrapped helper ability.&lt;br /&gt;
: #lev#&amp;quot; - Creature&#039;s caster level.&lt;br /&gt;
: #abil# - Name of the creature&#039;s spellcasting ability.&lt;br /&gt;
: #splstats# = The creature&#039;s spell attack and DC.&lt;br /&gt;
: #dc# - DC of the creature&#039;s spells.&lt;br /&gt;
: #atk# - Creature&#039;s spell attack bonus.&lt;br /&gt;
: #class# - The class a creature with Spellcasting draws its spells from.&lt;br /&gt;
&lt;br /&gt;
See the Deva for an example of a creature with Innate Spellcasting.&lt;br /&gt;
&lt;br /&gt;
== Substitution Tokens ==&lt;br /&gt;
Several substitution tokens have been set up that can be used in ability descriptions, and in on-hit effects for natural attacks.&lt;br /&gt;
: #StandardDC# - Substitutes the value of the abDC.&lt;br /&gt;
: #abSave# - Substitutes the names of any abSave tags present.&lt;br /&gt;
: #PassiveDC# - Substitutes a passive DC value, where the passive value of a skill is used. For example, when used in conjunction with the PassiveDC.skStealth will insert the creature&#039;s passive DC value. Most often this is used for grapple DCs, which is the higher of the passive Strength (Athletics) or Dexterity (Acrobatics) values.&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=5th_Edition_SRD_Best_Practices&amp;diff=3160</id>
		<title>5th Edition SRD Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=5th_Edition_SRD_Best_Practices&amp;diff=3160"/>
		<updated>2016-12-14T14:55:47Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Testing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Unique Id Prefix =&lt;br /&gt;
When choosing unique ids for the things you&#039;re creating, you should include a two-letter prefix for any things from a different publisher. This helps avoid &amp;quot;unique id collisions&amp;quot; with content that users have entered themselves, because they&#039;re unlikely to have used the same prefix as a publisher does.&lt;br /&gt;
&lt;br /&gt;
This prefix can be set in the editor, by going to Tools -&amp;gt; Set User Identifier. It should come after the &amp;quot;type&amp;quot; of the thing, so for example the id for a Kobold Press feat would start &amp;quot;fKP&amp;quot;, like &amp;quot;fKPPowAtt&amp;quot; for Power Attack from Kobold Press.&lt;br /&gt;
&lt;br /&gt;
Here is the current list of id prefixes for different publishers:&lt;br /&gt;
&lt;br /&gt;
* FG - Frog God Games&lt;br /&gt;
* GR - Green Ronin Publishing&lt;br /&gt;
* HG - Hammerdog Games&lt;br /&gt;
* KP - Kobold Press&lt;br /&gt;
* LG - Legendary Games&lt;br /&gt;
* RP - Rite Publishing&lt;br /&gt;
&lt;br /&gt;
Make sure the unique id prefix is set correctly for every thing you submit.&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives resistance to fire damage.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Weapon Training, Expertise&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability grants advantage on saving throws against being frightened&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Brave, Tinker&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a bonus action, this ability grants a bonus on melee weapon damage rolls for one minute.&lt;br /&gt;
::Sample Rage&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Feats&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Subraces&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in the 5th Edition SRD (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== First Steps ==&lt;br /&gt;
While there are many steps in creating a race, certain things are important to handle first, because they factor into many other things.&lt;br /&gt;
:Ability modifiers&lt;br /&gt;
:Challenge Rating/CR&lt;br /&gt;
:Size&lt;br /&gt;
:Number of Hit Dice (If a creature&#039;s Hit Dice are not the standard size for the race&#039;s size, these need to be set as well.)&lt;br /&gt;
&lt;br /&gt;
An optional but highly recommended step is to turn on one of the &amp;quot;Show stat block&amp;quot; options on the configure hero screen. This will show you the race&#039;s stat block and make it easier to spot differences. Note that you will have to reload before any changes take effect, either the full dataset with the Quick Reload shortcut, Ctrl+R, or only the specific race using the Test Now button in the editor.&lt;br /&gt;
&lt;br /&gt;
== Spellcasting /Innate Spellcasting ==&lt;br /&gt;
If a creature has the Spellcasting or Innate Spellcasting special abilities, these helper abilites will need to be bootstrapped separately from the spells the creature can cast. A custom header can be set using the rSplHead field on the race. (If a creature has &#039;&#039;&#039;both&#039;&#039;&#039; Spellcasting and Innate Spellcasting, then separate custom headers for each ability will need to be set using the CustDesc the helper abilities.) The following substitution tokens are recognized by the script that generates the spell headers:&lt;br /&gt;
: #name# - Creature&#039;s  name. Defaults to the race name, if something else is wanted set it in the abText field on the bootstrapped helper ability.&lt;br /&gt;
: #lev#&amp;quot; - Creature&#039;s caster level.&lt;br /&gt;
: #abil# - Name of the creature&#039;s spellcasting ability.&lt;br /&gt;
: #splstats# = The creature&#039;s spell attack and DC.&lt;br /&gt;
: #dc# - DC of the creature&#039;s spells.&lt;br /&gt;
: #atk# - Creature&#039;s spell attack bonus.&lt;br /&gt;
: #class# - The class a creature with Spellcasting draws its spells from.&lt;br /&gt;
&lt;br /&gt;
See the Deva for an example of a creature with Innate Spellcasting.&lt;br /&gt;
&lt;br /&gt;
== Substitution Tokens ==&lt;br /&gt;
Several substitution tokens have been set up that can be used in ability descriptions, and in on-hit effects for natural attacks.&lt;br /&gt;
: #StandardDC# - Substitutes the value of the abDC.&lt;br /&gt;
: #abSave# - Substitutes the names of any abSave tags present.&lt;br /&gt;
: #PassiveDC# - Substitutes a passive DC value, where the passive value of a skill is used. For example, when used in conjunction with the PassiveDC.skStealth will insert the creature&#039;s passive DC value. Most often this is used for grapple DCs, which is the higher of the passive Strength (Athletics) or Dexterity (Acrobatics) values.&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3159</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3159"/>
		<updated>2016-12-13T15:12:26Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Details to check for Weapons, Armor, Magic Items, and Gear */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Details to Check for Weapons, Armor, Magic Items, and Gear =&lt;br /&gt;
&lt;br /&gt;
* If there is equipment in this book from an exotic source, like high-tech items, or stone-age items, or firearms, in the Configure Hero settings, go to the &amp;quot;Equipment, Weapons &amp;amp; Armor to show&amp;quot; section, and turn on the option(s) that should hide this exotic content.  Then, search the various tables for content from this book, and make sure that it is hidden as intended. If not, set the appropriate tag in the &amp;quot;Special Groupings&amp;quot; list for the category.&lt;br /&gt;
&lt;br /&gt;
* Did you create any new weapons that are helper items or variants of an existing weapon?  If so, add the weapon focus feat, and then double-check that none of the helper weapons show up there as a selection option. (To check this, search for items from the book and make sure that nothing appears in the tables that shouldn&#039;t.)&lt;br /&gt;
&lt;br /&gt;
* In each table where you&#039;ve added new content, filter to only this new book, and look at what categories your new content fits in to - are they sorted under the correct headers?&lt;br /&gt;
&lt;br /&gt;
* Go to the weapons, armor, magic, and gear tabs, and filter for &amp;quot;- no description -&amp;quot; (note the spaces between the - and the words).  Make sure none of the content from your book is among this material - everything new should have a description.&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Entering Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
These guidelines apply to people who are building Hero Lab encounter libraries, typically for Pathfinder Modules and adventure paths.&lt;br /&gt;
&lt;br /&gt;
There are two deliverables which must be submitted before a project is completed, which should be worked on in parallel.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 1 - Create portfolios for every encounter and NPC in the module ==&lt;br /&gt;
&lt;br /&gt;
Every statblock, or partial statblock, printed in the module / adventure path / whatever must have a portfolio created in Hero Lab. The portfolio filenames are what appear in the Encounter Library, so they should be chosen based on the rules in &amp;quot;step 1&amp;quot; of the &amp;quot;testing encounter libraries&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
Portfolio names &#039;&#039;&#039;must&#039;&#039;&#039; be correct before we accept this deliverable - don&#039;t submit files with names like &amp;quot;encounter1.por&amp;quot; &amp;quot;encounter2.por&amp;quot; etc, as it makes things harder to QA.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t create a portfolio unless there&#039;s at least a partial statblock present in the module. A partial statblock will typically show the basic stats of the monster, then refer you to a Bestiary - for those, you can import the monster from the encounter builder, and make any changes as required (for example, you might need to apply a template to it, or swap out weapons).&lt;br /&gt;
&lt;br /&gt;
If an encounter includes multiple copies of an NPC, import that many copies into the portfolio. If you need to make changes (like adding templates) it will probably be easier to make one, apply any changes, then duplicate it from the Portfolio menu instead.&lt;br /&gt;
&lt;br /&gt;
Some NPCs (e.g. Pavo Vos on page 18 of Fangwood Keep) will need a full Hero Lab character created for them. In those cases, create the character. Don&#039;t create statblocks for NPCs we don&#039;t have enough information about. For example, if the text mentions &amp;quot;Merlin (elf wizard 4) might be hanging around the sanctum&amp;quot;, don&#039;t create an NPC for him - we can&#039;t, because we don&#039;t know anything useful about him to create the NPC with.&lt;br /&gt;
&lt;br /&gt;
When building an NPC, you&#039;ll need to reverse-engineer the Hero Lab character from the statblock. For example, the character&#039;s hit points will come from a combination of class levels, favored class bonuses, and other sources - use average hit points for the class levels (which on NPCs, alternate from one level to the next). Generally favored class bonuses will be used to add additional hit points, but not always.&lt;br /&gt;
&lt;br /&gt;
Make sure all characters you create in all portfolios are set to &amp;quot;NPC&amp;quot; and &amp;quot;enemy of the party&amp;quot; on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
For any NPC in a portfolio (either imported from the encounter builder or created by yourself), check that the statblock output matches what&#039;s shown in the &amp;quot;Output Hero Statblock&amp;quot; window (found in the File menu). If anything there is wrong, try to figure out why - is it a mistake you made, or a mistake made by the authors of the encounter?&lt;br /&gt;
&lt;br /&gt;
A convenient way to check whether the statblock is correct is to turn on the &amp;quot;statblock summary info window&amp;quot; for the portfolio - you can find it about 80% of the way down the &amp;quot;hero settings&amp;quot; in the configure hero form. Turn on &amp;quot;show full statblock summary window&amp;quot; and the first info window will be replaced by the character statblock. This allows you to check things without having to go to the File menu every time.&lt;br /&gt;
&lt;br /&gt;
In general, set &amp;quot;base values&amp;quot; before &amp;quot;derived values&amp;quot;. For example, set the character&#039;s ability scores first, then their skills - if you change ability scores after setting their skills, the skill values will change.&lt;br /&gt;
&lt;br /&gt;
If you make any tweaks to the character after checking the statblock, you need to re-check the statblock for any changes. Remember, if you change an ability score, that can affect skills, ability values, etc. &lt;br /&gt;
&lt;br /&gt;
Set the &amp;quot;buy for free&amp;quot; checkbox to buy the character&#039;s gear for free, then set their &amp;quot;starting cash&amp;quot; to be any cash the portfolio indicates they have.&lt;br /&gt;
&lt;br /&gt;
Many NPCs will list &amp;quot;longbow with 20 arrows&amp;quot; for gear - to make that appear correctly on the statblock, add the longbow, add the arrows, then put the arrows &amp;quot;into&amp;quot; the bow using the &amp;quot;gear&amp;quot; button (the little bag) on the arrows.&lt;br /&gt;
&lt;br /&gt;
Remember to set important things like composite longbow strength bonuses, holy symbol details, etc.&lt;br /&gt;
&lt;br /&gt;
If you find differences between Hero Lab&#039;s statblock and what&#039;s in the book, try to do what the creators &amp;quot;meant&amp;quot;, even if that means the character will have validation errors. Examples:&lt;br /&gt;
&lt;br /&gt;
1) if the character has too many feats or skill points, that&#039;s fine - just do what the module says. The GM will see any errors when they import the portfolio, and it&#039;s up to them what to do about them.&lt;br /&gt;
&lt;br /&gt;
2) If you can&#039;t get the skills to match up for an obvious reason, then don&#039;t worry about the problem. For example, a common issue is that NPCs have too much gear, so they&#039;re encumbered, so their skills in HL are lower than the portfolio says they should be - that&#039;s a case where we should leave them at the &amp;quot;correct&amp;quot; values and let the GM decide what to do. Another common issue is the creator might have forgotten that a skill is a class skill, leaving it 3 points off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Deliverable 2 - Notes ==&lt;br /&gt;
&lt;br /&gt;
As you work on the module, create a list of any differences between what the module shows, and what Hero Lab shows. For example, if skills are off, note that, and see if you can figure out why it happened - that might lead you to think of a different way to do them so they&#039;ll be correct. This file is important because it will be used by whoever is checking your work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Submission == &lt;br /&gt;
&lt;br /&gt;
Submit both pieces of the project to us - portfolios and notes file. Don&#039;t submit until the portfolios are complete and checked to make sure they&#039;re correct.&lt;br /&gt;
&lt;br /&gt;
= Checking Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
Once both deliverables for an encounter library have been submitted (see above), we&#039;ll a different person to check the work. If you&#039;re checking someone else&#039;s encounter libraries, you need to find places they did something wrong.&lt;br /&gt;
&lt;br /&gt;
Compare the statblocks listed in the module with what&#039;s in Hero Lab - do the details in the module match what&#039;s in HL? If not, consult the notes file you got along with the portfolios and see if the author noticed the problem and provided an explanation. If there is a note about the issue, is it a good one? Can you think of a way to make the statblock match the portfolio better? If there isn&#039;t, make a note of it yourself.&lt;br /&gt;
&lt;br /&gt;
In addition to checking the actual portfolios, check everything from steps #1-3 of the &amp;quot;testing encounter libraries&amp;quot; section below. Make a note of any issues.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve looked over everything in the module, make your list and send it to us. We&#039;ll pass it on to the original author, who will fix things. They should get you a new version of the module once the problems are fixed - once that&#039;s done, verify the issues you noted are fixed, or that you agree with the author on why they shouldn&#039;t be fixed. If there are disagreements, contact us and we&#039;ll resolve them.&lt;br /&gt;
&lt;br /&gt;
= Testing Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 - Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form. On the NPC tab, make sure that the creature doesn&#039;t show any &amp;quot;default&amp;quot; NPC info for the race - that doesn&#039;t apply here, and we don&#039;t want it to show up on the statblock, so delete it.&lt;br /&gt;
&lt;br /&gt;
If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
If you imported a creature from the bestiary, and customized it to fit the statblock in the book, you&#039;ll likely have to delete some of the chunks of info on the NPC tab to make it match the statblock (e.g. the statblock in the book likely won&#039;t show ecology, treasure, etc if it&#039;s for a specific NPC). If you don&#039;t have to customize the creature, the book likely won&#039;t show the statblock, so don&#039;t delete the NPC info.&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do make sure it&#039;s noted down. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 - Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3158</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3158"/>
		<updated>2016-12-13T15:12:14Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Entering Stock Heroes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Details to check for Weapons, Armor, Magic Items, and Gear =&lt;br /&gt;
&lt;br /&gt;
* If there is equipment in this book from an exotic source, like high-tech items, or stone-age items, or firearms, in the Configure Hero settings, go to the &amp;quot;Equipment, Weapons &amp;amp; Armor to show&amp;quot; section, and turn on the option(s) that should hide this exotic content.  Then, search the various tables for content from this book, and make sure that it is hidden as intended. If not, set the appropriate tag in the &amp;quot;Special Groupings&amp;quot; list for the category.&lt;br /&gt;
&lt;br /&gt;
* Did you create any new weapons that are helper items or variants of an existing weapon?  If so, add the weapon focus feat, and then double-check that none of the helper weapons show up there as a selection option. (To check this, search for items from the book and make sure that nothing appears in the tables that shouldn&#039;t.)&lt;br /&gt;
&lt;br /&gt;
* In each table where you&#039;ve added new content, filter to only this new book, and look at what categories your new content fits in to - are they sorted under the correct headers?&lt;br /&gt;
&lt;br /&gt;
* Go to the weapons, armor, magic, and gear tabs, and filter for &amp;quot;- no description -&amp;quot; (note the spaces between the - and the words).  Make sure none of the content from your book is among this material - everything new should have a description.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Entering Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
These guidelines apply to people who are building Hero Lab encounter libraries, typically for Pathfinder Modules and adventure paths.&lt;br /&gt;
&lt;br /&gt;
There are two deliverables which must be submitted before a project is completed, which should be worked on in parallel.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 1 - Create portfolios for every encounter and NPC in the module ==&lt;br /&gt;
&lt;br /&gt;
Every statblock, or partial statblock, printed in the module / adventure path / whatever must have a portfolio created in Hero Lab. The portfolio filenames are what appear in the Encounter Library, so they should be chosen based on the rules in &amp;quot;step 1&amp;quot; of the &amp;quot;testing encounter libraries&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
Portfolio names &#039;&#039;&#039;must&#039;&#039;&#039; be correct before we accept this deliverable - don&#039;t submit files with names like &amp;quot;encounter1.por&amp;quot; &amp;quot;encounter2.por&amp;quot; etc, as it makes things harder to QA.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t create a portfolio unless there&#039;s at least a partial statblock present in the module. A partial statblock will typically show the basic stats of the monster, then refer you to a Bestiary - for those, you can import the monster from the encounter builder, and make any changes as required (for example, you might need to apply a template to it, or swap out weapons).&lt;br /&gt;
&lt;br /&gt;
If an encounter includes multiple copies of an NPC, import that many copies into the portfolio. If you need to make changes (like adding templates) it will probably be easier to make one, apply any changes, then duplicate it from the Portfolio menu instead.&lt;br /&gt;
&lt;br /&gt;
Some NPCs (e.g. Pavo Vos on page 18 of Fangwood Keep) will need a full Hero Lab character created for them. In those cases, create the character. Don&#039;t create statblocks for NPCs we don&#039;t have enough information about. For example, if the text mentions &amp;quot;Merlin (elf wizard 4) might be hanging around the sanctum&amp;quot;, don&#039;t create an NPC for him - we can&#039;t, because we don&#039;t know anything useful about him to create the NPC with.&lt;br /&gt;
&lt;br /&gt;
When building an NPC, you&#039;ll need to reverse-engineer the Hero Lab character from the statblock. For example, the character&#039;s hit points will come from a combination of class levels, favored class bonuses, and other sources - use average hit points for the class levels (which on NPCs, alternate from one level to the next). Generally favored class bonuses will be used to add additional hit points, but not always.&lt;br /&gt;
&lt;br /&gt;
Make sure all characters you create in all portfolios are set to &amp;quot;NPC&amp;quot; and &amp;quot;enemy of the party&amp;quot; on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
For any NPC in a portfolio (either imported from the encounter builder or created by yourself), check that the statblock output matches what&#039;s shown in the &amp;quot;Output Hero Statblock&amp;quot; window (found in the File menu). If anything there is wrong, try to figure out why - is it a mistake you made, or a mistake made by the authors of the encounter?&lt;br /&gt;
&lt;br /&gt;
A convenient way to check whether the statblock is correct is to turn on the &amp;quot;statblock summary info window&amp;quot; for the portfolio - you can find it about 80% of the way down the &amp;quot;hero settings&amp;quot; in the configure hero form. Turn on &amp;quot;show full statblock summary window&amp;quot; and the first info window will be replaced by the character statblock. This allows you to check things without having to go to the File menu every time.&lt;br /&gt;
&lt;br /&gt;
In general, set &amp;quot;base values&amp;quot; before &amp;quot;derived values&amp;quot;. For example, set the character&#039;s ability scores first, then their skills - if you change ability scores after setting their skills, the skill values will change.&lt;br /&gt;
&lt;br /&gt;
If you make any tweaks to the character after checking the statblock, you need to re-check the statblock for any changes. Remember, if you change an ability score, that can affect skills, ability values, etc. &lt;br /&gt;
&lt;br /&gt;
Set the &amp;quot;buy for free&amp;quot; checkbox to buy the character&#039;s gear for free, then set their &amp;quot;starting cash&amp;quot; to be any cash the portfolio indicates they have.&lt;br /&gt;
&lt;br /&gt;
Many NPCs will list &amp;quot;longbow with 20 arrows&amp;quot; for gear - to make that appear correctly on the statblock, add the longbow, add the arrows, then put the arrows &amp;quot;into&amp;quot; the bow using the &amp;quot;gear&amp;quot; button (the little bag) on the arrows.&lt;br /&gt;
&lt;br /&gt;
Remember to set important things like composite longbow strength bonuses, holy symbol details, etc.&lt;br /&gt;
&lt;br /&gt;
If you find differences between Hero Lab&#039;s statblock and what&#039;s in the book, try to do what the creators &amp;quot;meant&amp;quot;, even if that means the character will have validation errors. Examples:&lt;br /&gt;
&lt;br /&gt;
1) if the character has too many feats or skill points, that&#039;s fine - just do what the module says. The GM will see any errors when they import the portfolio, and it&#039;s up to them what to do about them.&lt;br /&gt;
&lt;br /&gt;
2) If you can&#039;t get the skills to match up for an obvious reason, then don&#039;t worry about the problem. For example, a common issue is that NPCs have too much gear, so they&#039;re encumbered, so their skills in HL are lower than the portfolio says they should be - that&#039;s a case where we should leave them at the &amp;quot;correct&amp;quot; values and let the GM decide what to do. Another common issue is the creator might have forgotten that a skill is a class skill, leaving it 3 points off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Deliverable 2 - Notes ==&lt;br /&gt;
&lt;br /&gt;
As you work on the module, create a list of any differences between what the module shows, and what Hero Lab shows. For example, if skills are off, note that, and see if you can figure out why it happened - that might lead you to think of a different way to do them so they&#039;ll be correct. This file is important because it will be used by whoever is checking your work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Submission == &lt;br /&gt;
&lt;br /&gt;
Submit both pieces of the project to us - portfolios and notes file. Don&#039;t submit until the portfolios are complete and checked to make sure they&#039;re correct.&lt;br /&gt;
&lt;br /&gt;
= Checking Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
Once both deliverables for an encounter library have been submitted (see above), we&#039;ll a different person to check the work. If you&#039;re checking someone else&#039;s encounter libraries, you need to find places they did something wrong.&lt;br /&gt;
&lt;br /&gt;
Compare the statblocks listed in the module with what&#039;s in Hero Lab - do the details in the module match what&#039;s in HL? If not, consult the notes file you got along with the portfolios and see if the author noticed the problem and provided an explanation. If there is a note about the issue, is it a good one? Can you think of a way to make the statblock match the portfolio better? If there isn&#039;t, make a note of it yourself.&lt;br /&gt;
&lt;br /&gt;
In addition to checking the actual portfolios, check everything from steps #1-3 of the &amp;quot;testing encounter libraries&amp;quot; section below. Make a note of any issues.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve looked over everything in the module, make your list and send it to us. We&#039;ll pass it on to the original author, who will fix things. They should get you a new version of the module once the problems are fixed - once that&#039;s done, verify the issues you noted are fixed, or that you agree with the author on why they shouldn&#039;t be fixed. If there are disagreements, contact us and we&#039;ll resolve them.&lt;br /&gt;
&lt;br /&gt;
= Testing Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 - Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form. On the NPC tab, make sure that the creature doesn&#039;t show any &amp;quot;default&amp;quot; NPC info for the race - that doesn&#039;t apply here, and we don&#039;t want it to show up on the statblock, so delete it.&lt;br /&gt;
&lt;br /&gt;
If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
If you imported a creature from the bestiary, and customized it to fit the statblock in the book, you&#039;ll likely have to delete some of the chunks of info on the NPC tab to make it match the statblock (e.g. the statblock in the book likely won&#039;t show ecology, treasure, etc if it&#039;s for a specific NPC). If you don&#039;t have to customize the creature, the book likely won&#039;t show the statblock, so don&#039;t delete the NPC info.&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do make sure it&#039;s noted down. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 - Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Authoring_Examples&amp;diff=3157</id>
		<title>Authoring Examples</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Authoring_Examples&amp;diff=3157"/>
		<updated>2016-12-08T22:29:07Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* What We Assume */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context}}&lt;br /&gt;
[[Category:Authoring Examples]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The goal of this section is to provide concrete examples of how to create data files for whatever game system you choose. Although additional examples are included, there are two primary components of this section. The first is an examination of the Sample data files provided by the Kit, which also serve as the starting point for creating data files for your own game system. The second is a detailed walk-through that guides you through the evolution of fully operational data files for the Savage Worlds game system. Starting with the Skeleton data files, you&#039;ll witness how the entire process unfolds.&lt;br /&gt;
&lt;br /&gt;
==What We Assume==&lt;br /&gt;
&lt;br /&gt;
For all of the examples below, we assume that you&#039;ve familiarized yourself with the rest of the Kit documentation and all of the core concepts. Regular references will be made to the terms, concepts, and mechanisms that are introduced by the Kit. At a minimum, you must be comfortable with the material presented in the [[Basic Concepts and Terminology]] section.&lt;br /&gt;
&lt;br /&gt;
If you wish to actually modify any of the data files, you will need a text editor that allows you to edit XML files. If you are only viewing the files, more web browsers provide a reasonable solution for displaying the contents of XML files.&lt;br /&gt;
&lt;br /&gt;
For editing, you can get by with the Notepad editor included with Windows. However, that editor is extremely limited in what it offers, so we recommend you use something with a little bit more functionality if at all possible. Numerous text editors are available for free online that will work well, while commercial tools are also available. A few options are listed below:&lt;br /&gt;
&lt;br /&gt;
*Notepad++ - [http://notepad-plus.sourceforge.net]&lt;br /&gt;
*EditPad Lite - [http://www.editpadpro.com/editpadlite.html]&lt;br /&gt;
*Textpad.com - [http://www.textpad.com]&lt;br /&gt;
*XMLMarker - [http://www.symbolclick.com]&lt;br /&gt;
*BBEdit - [http://www.barebones.com/products/bbedit/index.html] (for mac users)&lt;br /&gt;
&lt;br /&gt;
==Sample/Skeleton Data Files==&lt;br /&gt;
&lt;br /&gt;
To simplify the creation of custom data files for a new game system, the Kit provides the Skeleton data files as a robust starting point. The Authoring Kit Sample game system provides a working example that builds directly on top of the Skeleton data files. The major facets of the Skeleton data files are discussed in their own section, which can be accessed via the link below.&lt;br /&gt;
&lt;br /&gt;
*{{fl|Skeleton Data Files}}&lt;br /&gt;
&lt;br /&gt;
==Savage Worlds Walk-Through==&lt;br /&gt;
&lt;br /&gt;
As mentioned above, the Kit includes complete data files for the Savage Worlds game system from [http://www.greatwhitegames.com Great White Games]. We&#039;ve written up a detailed walk-through of how we created these data files, using the Skeleton files as our starting point. This should provide an excellent guide for how to adapt the Skeleton files to whatever game system you have in mind. Click on the link below to follow the process from start to finish.&lt;br /&gt;
&lt;br /&gt;
*{{fl|Savage Worlds Walk-Through}}&lt;br /&gt;
&lt;br /&gt;
==Miscellaneous Examples==&lt;br /&gt;
&lt;br /&gt;
*{{tbd}}&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Authoring_Examples&amp;diff=3156</id>
		<title>Authoring Examples</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Authoring_Examples&amp;diff=3156"/>
		<updated>2016-12-08T22:28:35Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* What We Assume */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context}}&lt;br /&gt;
[[Category:Authoring Examples]]&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The goal of this section is to provide concrete examples of how to create data files for whatever game system you choose. Although additional examples are included, there are two primary components of this section. The first is an examination of the Sample data files provided by the Kit, which also serve as the starting point for creating data files for your own game system. The second is a detailed walk-through that guides you through the evolution of fully operational data files for the Savage Worlds game system. Starting with the Skeleton data files, you&#039;ll witness how the entire process unfolds.&lt;br /&gt;
&lt;br /&gt;
==What We Assume==&lt;br /&gt;
&lt;br /&gt;
For all of the examples below, we assume that you&#039;ve familiarized yourself with the rest of the Kit documentation and all of the core concepts. Regular references will be made to the terms, concepts, and mechanisms that are introduced by the Kit. At a minimum, you must be comfortable with the material presented in the [[Basic Concepts and Terminology]] section.&lt;br /&gt;
&lt;br /&gt;
If you wish to actually modify any of the data files, you will need a text editor that allows you to edit XML files. If you are only viewing the files, more web browsers provide a reasonable solution for displaying the contents of XML files.&lt;br /&gt;
&lt;br /&gt;
For editing, you can get by with the Notepad editor included with Windows. However, that editor is extremely limited in what it offers, so we recommend you use something with a little bit more functionality if at all possible. Numerous text editors are available for free online that will work well, while commercial tools are also available. A few options are listed below:&lt;br /&gt;
&lt;br /&gt;
*Notepad++ - [http://notepad-plus.sourceforge.net]&lt;br /&gt;
*EditPad Lite - [http://www.editpadpro.com/editpadlite.html]&lt;br /&gt;
*Textpad.com - [http://www.textpad.com]&lt;br /&gt;
*XMLMarker - [http://www.symbolclick.com]&lt;br /&gt;
*Texpad - [https://www.texpadapp.com/osx] (for mac users)&lt;br /&gt;
&lt;br /&gt;
==Sample/Skeleton Data Files==&lt;br /&gt;
&lt;br /&gt;
To simplify the creation of custom data files for a new game system, the Kit provides the Skeleton data files as a robust starting point. The Authoring Kit Sample game system provides a working example that builds directly on top of the Skeleton data files. The major facets of the Skeleton data files are discussed in their own section, which can be accessed via the link below.&lt;br /&gt;
&lt;br /&gt;
*{{fl|Skeleton Data Files}}&lt;br /&gt;
&lt;br /&gt;
==Savage Worlds Walk-Through==&lt;br /&gt;
&lt;br /&gt;
As mentioned above, the Kit includes complete data files for the Savage Worlds game system from [http://www.greatwhitegames.com Great White Games]. We&#039;ve written up a detailed walk-through of how we created these data files, using the Skeleton files as our starting point. This should provide an excellent guide for how to adapt the Skeleton files to whatever game system you have in mind. Click on the link below to follow the process from start to finish.&lt;br /&gt;
&lt;br /&gt;
*{{fl|Savage Worlds Walk-Through}}&lt;br /&gt;
&lt;br /&gt;
==Miscellaneous Examples==&lt;br /&gt;
&lt;br /&gt;
*{{tbd}}&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=5th_Edition_SRD_Best_Practices&amp;diff=3154</id>
		<title>5th Edition SRD Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=5th_Edition_SRD_Best_Practices&amp;diff=3154"/>
		<updated>2016-12-06T17:31:03Z</updated>

		<summary type="html">&lt;p&gt;Colen: Created page with &amp;quot;(Fill in here)&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(Fill in here)&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3153</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3153"/>
		<updated>2016-12-05T16:21:34Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Step 2 - Check Portfolios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Entering Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
These guidelines apply to people who are building Hero Lab encounter libraries, typically for Pathfinder Modules and adventure paths.&lt;br /&gt;
&lt;br /&gt;
There are two deliverables which must be submitted before a project is completed, which should be worked on in parallel.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 1 - Create portfolios for every encounter and NPC in the module ==&lt;br /&gt;
&lt;br /&gt;
Every statblock, or partial statblock, printed in the module / adventure path / whatever must have a portfolio created in Hero Lab. The portfolio filenames are what appear in the Encounter Library, so they should be chosen based on the rules in &amp;quot;step 1&amp;quot; of the &amp;quot;testing encounter libraries&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
Portfolio names &#039;&#039;&#039;must&#039;&#039;&#039; be correct before we accept this deliverable - don&#039;t submit files with names like &amp;quot;encounter1.por&amp;quot; &amp;quot;encounter2.por&amp;quot; etc, as it makes things harder to QA.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t create a portfolio unless there&#039;s at least a partial statblock present in the module. A partial statblock will typically show the basic stats of the monster, then refer you to a Bestiary - for those, you can import the monster from the encounter builder, and make any changes as required (for example, you might need to apply a template to it, or swap out weapons).&lt;br /&gt;
&lt;br /&gt;
If an encounter includes multiple copies of an NPC, import that many copies into the portfolio. If you need to make changes (like adding templates) it will probably be easier to make one, apply any changes, then duplicate it from the Portfolio menu instead.&lt;br /&gt;
&lt;br /&gt;
Some NPCs (e.g. Pavo Vos on page 18 of Fangwood Keep) will need a full Hero Lab character created for them. In those cases, create the character. Don&#039;t create statblocks for NPCs we don&#039;t have enough information about. For example, if the text mentions &amp;quot;Merlin (elf wizard 4) might be hanging around the sanctum&amp;quot;, don&#039;t create an NPC for him - we can&#039;t, because we don&#039;t know anything useful about him to create the NPC with.&lt;br /&gt;
&lt;br /&gt;
When building an NPC, you&#039;ll need to reverse-engineer the Hero Lab character from the statblock. For example, the character&#039;s hit points will come from a combination of class levels, favored class bonuses, and other sources - use average hit points for the class levels (which on NPCs, alternate from one level to the next). Generally favored class bonuses will be used to add additional hit points, but not always.&lt;br /&gt;
&lt;br /&gt;
Make sure all characters you create in all portfolios are set to &amp;quot;NPC&amp;quot; and &amp;quot;enemy of the party&amp;quot; on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
For any NPC in a portfolio (either imported from the encounter builder or created by yourself), check that the statblock output matches what&#039;s shown in the &amp;quot;Output Hero Statblock&amp;quot; window (found in the File menu). If anything there is wrong, try to figure out why - is it a mistake you made, or a mistake made by the authors of the encounter?&lt;br /&gt;
&lt;br /&gt;
A convenient way to check whether the statblock is correct is to turn on the &amp;quot;statblock summary info window&amp;quot; for the portfolio - you can find it about 80% of the way down the &amp;quot;hero settings&amp;quot; in the configure hero form. Turn on &amp;quot;show full statblock summary window&amp;quot; and the first info window will be replaced by the character statblock. This allows you to check things without having to go to the File menu every time.&lt;br /&gt;
&lt;br /&gt;
In general, set &amp;quot;base values&amp;quot; before &amp;quot;derived values&amp;quot;. For example, set the character&#039;s ability scores first, then their skills - if you change ability scores after setting their skills, the skill values will change.&lt;br /&gt;
&lt;br /&gt;
If you make any tweaks to the character after checking the statblock, you need to re-check the statblock for any changes. Remember, if you change an ability score, that can affect skills, ability values, etc. &lt;br /&gt;
&lt;br /&gt;
Set the &amp;quot;buy for free&amp;quot; checkbox to buy the character&#039;s gear for free, then set their &amp;quot;starting cash&amp;quot; to be any cash the portfolio indicates they have.&lt;br /&gt;
&lt;br /&gt;
Many NPCs will list &amp;quot;longbow with 20 arrows&amp;quot; for gear - to make that appear correctly on the statblock, add the longbow, add the arrows, then put the arrows &amp;quot;into&amp;quot; the bow using the &amp;quot;gear&amp;quot; button (the little bag) on the arrows.&lt;br /&gt;
&lt;br /&gt;
Remember to set important things like composite longbow strength bonuses, holy symbol details, etc.&lt;br /&gt;
&lt;br /&gt;
If you find differences between Hero Lab&#039;s statblock and what&#039;s in the book, try to do what the creators &amp;quot;meant&amp;quot;, even if that means the character will have validation errors. Examples:&lt;br /&gt;
&lt;br /&gt;
1) if the character has too many feats or skill points, that&#039;s fine - just do what the module says. The GM will see any errors when they import the portfolio, and it&#039;s up to them what to do about them.&lt;br /&gt;
&lt;br /&gt;
2) If you can&#039;t get the skills to match up for an obvious reason, then don&#039;t worry about the problem. For example, a common issue is that NPCs have too much gear, so they&#039;re encumbered, so their skills in HL are lower than the portfolio says they should be - that&#039;s a case where we should leave them at the &amp;quot;correct&amp;quot; values and let the GM decide what to do. Another common issue is the creator might have forgotten that a skill is a class skill, leaving it 3 points off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Deliverable 2 - Notes ==&lt;br /&gt;
&lt;br /&gt;
As you work on the module, create a list of any differences between what the module shows, and what Hero Lab shows. For example, if skills are off, note that, and see if you can figure out why it happened - that might lead you to think of a different way to do them so they&#039;ll be correct. This file is important because it will be used by whoever is checking your work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Submission == &lt;br /&gt;
&lt;br /&gt;
Submit both pieces of the project to us - portfolios and notes file. Don&#039;t submit until the portfolios are complete and checked to make sure they&#039;re correct.&lt;br /&gt;
&lt;br /&gt;
= Checking Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
Once both deliverables for an encounter library have been submitted (see above), we&#039;ll a different person to check the work. If you&#039;re checking someone else&#039;s encounter libraries, you need to find places they did something wrong.&lt;br /&gt;
&lt;br /&gt;
Compare the statblocks listed in the module with what&#039;s in Hero Lab - do the details in the module match what&#039;s in HL? If not, consult the notes file you got along with the portfolios and see if the author noticed the problem and provided an explanation. If there is a note about the issue, is it a good one? Can you think of a way to make the statblock match the portfolio better? If there isn&#039;t, make a note of it yourself.&lt;br /&gt;
&lt;br /&gt;
In addition to checking the actual portfolios, check everything from steps #1-3 of the &amp;quot;testing encounter libraries&amp;quot; section below. Make a note of any issues.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve looked over everything in the module, make your list and send it to us. We&#039;ll pass it on to the original author, who will fix things. They should get you a new version of the module once the problems are fixed - once that&#039;s done, verify the issues you noted are fixed, or that you agree with the author on why they shouldn&#039;t be fixed. If there are disagreements, contact us and we&#039;ll resolve them.&lt;br /&gt;
&lt;br /&gt;
= Testing Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 - Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form. On the NPC tab, make sure that the creature doesn&#039;t show any &amp;quot;default&amp;quot; NPC info for the race - that doesn&#039;t apply here, and we don&#039;t want it to show up on the statblock, so delete it.&lt;br /&gt;
&lt;br /&gt;
If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
If you imported a creature from the bestiary, and customized it to fit the statblock in the book, you&#039;ll likely have to delete some of the chunks of info on the NPC tab to make it match the statblock (e.g. the statblock in the book likely won&#039;t show ecology, treasure, etc if it&#039;s for a specific NPC). If you don&#039;t have to customize the creature, the book likely won&#039;t show the statblock, so don&#039;t delete the NPC info.&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do make sure it&#039;s noted down. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 - Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3152</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3152"/>
		<updated>2016-12-02T18:03:15Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Step 2 - Check Portfolios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Entering Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
These guidelines apply to people who are building Hero Lab encounter libraries, typically for Pathfinder Modules and adventure paths.&lt;br /&gt;
&lt;br /&gt;
There are two deliverables which must be submitted before a project is completed, which should be worked on in parallel.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 1 - Create portfolios for every encounter and NPC in the module ==&lt;br /&gt;
&lt;br /&gt;
Every statblock, or partial statblock, printed in the module / adventure path / whatever must have a portfolio created in Hero Lab. The portfolio filenames are what appear in the Encounter Library, so they should be chosen based on the rules in &amp;quot;step 1&amp;quot; of the &amp;quot;testing encounter libraries&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
Portfolio names &#039;&#039;&#039;must&#039;&#039;&#039; be correct before we accept this deliverable - don&#039;t submit files with names like &amp;quot;encounter1.por&amp;quot; &amp;quot;encounter2.por&amp;quot; etc, as it makes things harder to QA.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t create a portfolio unless there&#039;s at least a partial statblock present in the module. A partial statblock will typically show the basic stats of the monster, then refer you to a Bestiary - for those, you can import the monster from the encounter builder, and make any changes as required (for example, you might need to apply a template to it, or swap out weapons).&lt;br /&gt;
&lt;br /&gt;
If an encounter includes multiple copies of an NPC, import that many copies into the portfolio. If you need to make changes (like adding templates) it will probably be easier to make one, apply any changes, then duplicate it from the Portfolio menu instead.&lt;br /&gt;
&lt;br /&gt;
Some NPCs (e.g. Pavo Vos on page 18 of Fangwood Keep) will need a full Hero Lab character created for them. In those cases, create the character. Don&#039;t create statblocks for NPCs we don&#039;t have enough information about. For example, if the text mentions &amp;quot;Merlin (elf wizard 4) might be hanging around the sanctum&amp;quot;, don&#039;t create an NPC for him - we can&#039;t, because we don&#039;t know anything useful about him to create the NPC with.&lt;br /&gt;
&lt;br /&gt;
When building an NPC, you&#039;ll need to reverse-engineer the Hero Lab character from the statblock. For example, the character&#039;s hit points will come from a combination of class levels, favored class bonuses, and other sources - use average hit points for the class levels (which on NPCs, alternate from one level to the next). Generally favored class bonuses will be used to add additional hit points, but not always.&lt;br /&gt;
&lt;br /&gt;
Make sure all characters you create in all portfolios are set to &amp;quot;NPC&amp;quot; and &amp;quot;enemy of the party&amp;quot; on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
For any NPC in a portfolio (either imported from the encounter builder or created by yourself), check that the statblock output matches what&#039;s shown in the &amp;quot;Output Hero Statblock&amp;quot; window (found in the File menu). If anything there is wrong, try to figure out why - is it a mistake you made, or a mistake made by the authors of the encounter?&lt;br /&gt;
&lt;br /&gt;
A convenient way to check whether the statblock is correct is to turn on the &amp;quot;statblock summary info window&amp;quot; for the portfolio - you can find it about 80% of the way down the &amp;quot;hero settings&amp;quot; in the configure hero form. Turn on &amp;quot;show full statblock summary window&amp;quot; and the first info window will be replaced by the character statblock. This allows you to check things without having to go to the File menu every time.&lt;br /&gt;
&lt;br /&gt;
In general, set &amp;quot;base values&amp;quot; before &amp;quot;derived values&amp;quot;. For example, set the character&#039;s ability scores first, then their skills - if you change ability scores after setting their skills, the skill values will change.&lt;br /&gt;
&lt;br /&gt;
If you make any tweaks to the character after checking the statblock, you need to re-check the statblock for any changes. Remember, if you change an ability score, that can affect skills, ability values, etc. &lt;br /&gt;
&lt;br /&gt;
Set the &amp;quot;buy for free&amp;quot; checkbox to buy the character&#039;s gear for free, then set their &amp;quot;starting cash&amp;quot; to be any cash the portfolio indicates they have.&lt;br /&gt;
&lt;br /&gt;
Many NPCs will list &amp;quot;longbow with 20 arrows&amp;quot; for gear - to make that appear correctly on the statblock, add the longbow, add the arrows, then put the arrows &amp;quot;into&amp;quot; the bow using the &amp;quot;gear&amp;quot; button (the little bag) on the arrows.&lt;br /&gt;
&lt;br /&gt;
Remember to set important things like composite longbow strength bonuses, holy symbol details, etc.&lt;br /&gt;
&lt;br /&gt;
If you find differences between Hero Lab&#039;s statblock and what&#039;s in the book, try to do what the creators &amp;quot;meant&amp;quot;, even if that means the character will have validation errors. Examples:&lt;br /&gt;
&lt;br /&gt;
1) if the character has too many feats or skill points, that&#039;s fine - just do what the module says. The GM will see any errors when they import the portfolio, and it&#039;s up to them what to do about them.&lt;br /&gt;
&lt;br /&gt;
2) If you can&#039;t get the skills to match up for an obvious reason, then don&#039;t worry about the problem. For example, a common issue is that NPCs have too much gear, so they&#039;re encumbered, so their skills in HL are lower than the portfolio says they should be - that&#039;s a case where we should leave them at the &amp;quot;correct&amp;quot; values and let the GM decide what to do. Another common issue is the creator might have forgotten that a skill is a class skill, leaving it 3 points off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Deliverable 2 - Notes ==&lt;br /&gt;
&lt;br /&gt;
As you work on the module, create a list of any differences between what the module shows, and what Hero Lab shows. For example, if skills are off, note that, and see if you can figure out why it happened - that might lead you to think of a different way to do them so they&#039;ll be correct. This file is important because it will be used by whoever is checking your work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Submission == &lt;br /&gt;
&lt;br /&gt;
Submit both pieces of the project to us - portfolios and notes file. Don&#039;t submit until the portfolios are complete and checked to make sure they&#039;re correct.&lt;br /&gt;
&lt;br /&gt;
= Checking Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
Once both deliverables for an encounter library have been submitted (see above), we&#039;ll a different person to check the work. If you&#039;re checking someone else&#039;s encounter libraries, you need to find places they did something wrong.&lt;br /&gt;
&lt;br /&gt;
Compare the statblocks listed in the module with what&#039;s in Hero Lab - do the details in the module match what&#039;s in HL? If not, consult the notes file you got along with the portfolios and see if the author noticed the problem and provided an explanation. If there is a note about the issue, is it a good one? Can you think of a way to make the statblock match the portfolio better? If there isn&#039;t, make a note of it yourself.&lt;br /&gt;
&lt;br /&gt;
In addition to checking the actual portfolios, check everything from steps #1-3 of the &amp;quot;testing encounter libraries&amp;quot; section below. Make a note of any issues.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve looked over everything in the module, make your list and send it to us. We&#039;ll pass it on to the original author, who will fix things. They should get you a new version of the module once the problems are fixed - once that&#039;s done, verify the issues you noted are fixed, or that you agree with the author on why they shouldn&#039;t be fixed. If there are disagreements, contact us and we&#039;ll resolve them.&lt;br /&gt;
&lt;br /&gt;
= Testing Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 - Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form. On the NPC tab, make sure that the creature doesn&#039;t show any &amp;quot;default&amp;quot; NPC info for the race - that doesn&#039;t apply here, and we don&#039;t want it to show up on the statblock, so delete it.&lt;br /&gt;
&lt;br /&gt;
If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do make sure it&#039;s noted down. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 - Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3151</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3151"/>
		<updated>2016-12-02T17:21:32Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Step 2 - Check Portfolios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Entering Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
These guidelines apply to people who are building Hero Lab encounter libraries, typically for Pathfinder Modules and adventure paths.&lt;br /&gt;
&lt;br /&gt;
There are two deliverables which must be submitted before a project is completed, which should be worked on in parallel.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 1 - Create portfolios for every encounter and NPC in the module ==&lt;br /&gt;
&lt;br /&gt;
Every statblock, or partial statblock, printed in the module / adventure path / whatever must have a portfolio created in Hero Lab. The portfolio filenames are what appear in the Encounter Library, so they should be chosen based on the rules in &amp;quot;step 1&amp;quot; of the &amp;quot;testing encounter libraries&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
Portfolio names &#039;&#039;&#039;must&#039;&#039;&#039; be correct before we accept this deliverable - don&#039;t submit files with names like &amp;quot;encounter1.por&amp;quot; &amp;quot;encounter2.por&amp;quot; etc, as it makes things harder to QA.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t create a portfolio unless there&#039;s at least a partial statblock present in the module. A partial statblock will typically show the basic stats of the monster, then refer you to a Bestiary - for those, you can import the monster from the encounter builder, and make any changes as required (for example, you might need to apply a template to it, or swap out weapons).&lt;br /&gt;
&lt;br /&gt;
If an encounter includes multiple copies of an NPC, import that many copies into the portfolio. If you need to make changes (like adding templates) it will probably be easier to make one, apply any changes, then duplicate it from the Portfolio menu instead.&lt;br /&gt;
&lt;br /&gt;
Some NPCs (e.g. Pavo Vos on page 18 of Fangwood Keep) will need a full Hero Lab character created for them. In those cases, create the character. Don&#039;t create statblocks for NPCs we don&#039;t have enough information about. For example, if the text mentions &amp;quot;Merlin (elf wizard 4) might be hanging around the sanctum&amp;quot;, don&#039;t create an NPC for him - we can&#039;t, because we don&#039;t know anything useful about him to create the NPC with.&lt;br /&gt;
&lt;br /&gt;
When building an NPC, you&#039;ll need to reverse-engineer the Hero Lab character from the statblock. For example, the character&#039;s hit points will come from a combination of class levels, favored class bonuses, and other sources - use average hit points for the class levels (which on NPCs, alternate from one level to the next). Generally favored class bonuses will be used to add additional hit points, but not always.&lt;br /&gt;
&lt;br /&gt;
Make sure all characters you create in all portfolios are set to &amp;quot;NPC&amp;quot; and &amp;quot;enemy of the party&amp;quot; on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
For any NPC in a portfolio (either imported from the encounter builder or created by yourself), check that the statblock output matches what&#039;s shown in the &amp;quot;Output Hero Statblock&amp;quot; window (found in the File menu). If anything there is wrong, try to figure out why - is it a mistake you made, or a mistake made by the authors of the encounter?&lt;br /&gt;
&lt;br /&gt;
A convenient way to check whether the statblock is correct is to turn on the &amp;quot;statblock summary info window&amp;quot; for the portfolio - you can find it about 80% of the way down the &amp;quot;hero settings&amp;quot; in the configure hero form. Turn on &amp;quot;show full statblock summary window&amp;quot; and the first info window will be replaced by the character statblock. This allows you to check things without having to go to the File menu every time.&lt;br /&gt;
&lt;br /&gt;
In general, set &amp;quot;base values&amp;quot; before &amp;quot;derived values&amp;quot;. For example, set the character&#039;s ability scores first, then their skills - if you change ability scores after setting their skills, the skill values will change.&lt;br /&gt;
&lt;br /&gt;
If you make any tweaks to the character after checking the statblock, you need to re-check the statblock for any changes. Remember, if you change an ability score, that can affect skills, ability values, etc. &lt;br /&gt;
&lt;br /&gt;
Set the &amp;quot;buy for free&amp;quot; checkbox to buy the character&#039;s gear for free, then set their &amp;quot;starting cash&amp;quot; to be any cash the portfolio indicates they have.&lt;br /&gt;
&lt;br /&gt;
Many NPCs will list &amp;quot;longbow with 20 arrows&amp;quot; for gear - to make that appear correctly on the statblock, add the longbow, add the arrows, then put the arrows &amp;quot;into&amp;quot; the bow using the &amp;quot;gear&amp;quot; button (the little bag) on the arrows.&lt;br /&gt;
&lt;br /&gt;
Remember to set important things like composite longbow strength bonuses, holy symbol details, etc.&lt;br /&gt;
&lt;br /&gt;
If you find differences between Hero Lab&#039;s statblock and what&#039;s in the book, try to do what the creators &amp;quot;meant&amp;quot;, even if that means the character will have validation errors. Examples:&lt;br /&gt;
&lt;br /&gt;
1) if the character has too many feats or skill points, that&#039;s fine - just do what the module says. The GM will see any errors when they import the portfolio, and it&#039;s up to them what to do about them.&lt;br /&gt;
&lt;br /&gt;
2) If you can&#039;t get the skills to match up for an obvious reason, then don&#039;t worry about the problem. For example, a common issue is that NPCs have too much gear, so they&#039;re encumbered, so their skills in HL are lower than the portfolio says they should be - that&#039;s a case where we should leave them at the &amp;quot;correct&amp;quot; values and let the GM decide what to do. Another common issue is the creator might have forgotten that a skill is a class skill, leaving it 3 points off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Deliverable 2 - Notes ==&lt;br /&gt;
&lt;br /&gt;
As you work on the module, create a list of any differences between what the module shows, and what Hero Lab shows. For example, if skills are off, note that, and see if you can figure out why it happened - that might lead you to think of a different way to do them so they&#039;ll be correct. This file is important because it will be used by whoever is checking your work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Submission == &lt;br /&gt;
&lt;br /&gt;
Submit both pieces of the project to us - portfolios and notes file. Don&#039;t submit until the portfolios are complete and checked to make sure they&#039;re correct.&lt;br /&gt;
&lt;br /&gt;
= Checking Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
Once both deliverables for an encounter library have been submitted (see above), we&#039;ll a different person to check the work. If you&#039;re checking someone else&#039;s encounter libraries, you need to find places they did something wrong.&lt;br /&gt;
&lt;br /&gt;
Compare the statblocks listed in the module with what&#039;s in Hero Lab - do the details in the module match what&#039;s in HL? If not, consult the notes file you got along with the portfolios and see if the author noticed the problem and provided an explanation. If there is a note about the issue, is it a good one? Can you think of a way to make the statblock match the portfolio better? If there isn&#039;t, make a note of it yourself.&lt;br /&gt;
&lt;br /&gt;
In addition to checking the actual portfolios, check everything from steps #1-3 of the &amp;quot;testing encounter libraries&amp;quot; section below. Make a note of any issues.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve looked over everything in the module, make your list and send it to us. We&#039;ll pass it on to the original author, who will fix things. They should get you a new version of the module once the problems are fixed - once that&#039;s done, verify the issues you noted are fixed, or that you agree with the author on why they shouldn&#039;t be fixed. If there are disagreements, contact us and we&#039;ll resolve them.&lt;br /&gt;
&lt;br /&gt;
= Testing Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 - Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
The text in the &amp;quot;Creatures&amp;quot; entry should be on the Personal tab for all heroes in the portfolio, and any &amp;quot;Treasure&amp;quot;, &amp;quot;Story Awards&amp;quot;, or &amp;quot;Development&amp;quot; entries should be on the NPC tab (using the Additional Info option). If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do make sure it&#039;s noted down. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 - Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3150</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3150"/>
		<updated>2016-12-02T17:11:38Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Entering Encounter Libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Entering Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
These guidelines apply to people who are building Hero Lab encounter libraries, typically for Pathfinder Modules and adventure paths.&lt;br /&gt;
&lt;br /&gt;
There are two deliverables which must be submitted before a project is completed, which should be worked on in parallel.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 1 - Create portfolios for every encounter and NPC in the module ==&lt;br /&gt;
&lt;br /&gt;
Every statblock, or partial statblock, printed in the module / adventure path / whatever must have a portfolio created in Hero Lab. The portfolio filenames are what appear in the Encounter Library, so they should be chosen based on the rules in &amp;quot;step 1&amp;quot; of the &amp;quot;testing encounter libraries&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
Portfolio names &#039;&#039;&#039;must&#039;&#039;&#039; be correct before we accept this deliverable - don&#039;t submit files with names like &amp;quot;encounter1.por&amp;quot; &amp;quot;encounter2.por&amp;quot; etc, as it makes things harder to QA.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t create a portfolio unless there&#039;s at least a partial statblock present in the module. A partial statblock will typically show the basic stats of the monster, then refer you to a Bestiary - for those, you can import the monster from the encounter builder, and make any changes as required (for example, you might need to apply a template to it, or swap out weapons).&lt;br /&gt;
&lt;br /&gt;
If an encounter includes multiple copies of an NPC, import that many copies into the portfolio. If you need to make changes (like adding templates) it will probably be easier to make one, apply any changes, then duplicate it from the Portfolio menu instead.&lt;br /&gt;
&lt;br /&gt;
Some NPCs (e.g. Pavo Vos on page 18 of Fangwood Keep) will need a full Hero Lab character created for them. In those cases, create the character. Don&#039;t create statblocks for NPCs we don&#039;t have enough information about. For example, if the text mentions &amp;quot;Merlin (elf wizard 4) might be hanging around the sanctum&amp;quot;, don&#039;t create an NPC for him - we can&#039;t, because we don&#039;t know anything useful about him to create the NPC with.&lt;br /&gt;
&lt;br /&gt;
When building an NPC, you&#039;ll need to reverse-engineer the Hero Lab character from the statblock. For example, the character&#039;s hit points will come from a combination of class levels, favored class bonuses, and other sources - use average hit points for the class levels (which on NPCs, alternate from one level to the next). Generally favored class bonuses will be used to add additional hit points, but not always.&lt;br /&gt;
&lt;br /&gt;
Make sure all characters you create in all portfolios are set to &amp;quot;NPC&amp;quot; and &amp;quot;enemy of the party&amp;quot; on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
For any NPC in a portfolio (either imported from the encounter builder or created by yourself), check that the statblock output matches what&#039;s shown in the &amp;quot;Output Hero Statblock&amp;quot; window (found in the File menu). If anything there is wrong, try to figure out why - is it a mistake you made, or a mistake made by the authors of the encounter?&lt;br /&gt;
&lt;br /&gt;
A convenient way to check whether the statblock is correct is to turn on the &amp;quot;statblock summary info window&amp;quot; for the portfolio - you can find it about 80% of the way down the &amp;quot;hero settings&amp;quot; in the configure hero form. Turn on &amp;quot;show full statblock summary window&amp;quot; and the first info window will be replaced by the character statblock. This allows you to check things without having to go to the File menu every time.&lt;br /&gt;
&lt;br /&gt;
In general, set &amp;quot;base values&amp;quot; before &amp;quot;derived values&amp;quot;. For example, set the character&#039;s ability scores first, then their skills - if you change ability scores after setting their skills, the skill values will change.&lt;br /&gt;
&lt;br /&gt;
If you make any tweaks to the character after checking the statblock, you need to re-check the statblock for any changes. Remember, if you change an ability score, that can affect skills, ability values, etc. &lt;br /&gt;
&lt;br /&gt;
Set the &amp;quot;buy for free&amp;quot; checkbox to buy the character&#039;s gear for free, then set their &amp;quot;starting cash&amp;quot; to be any cash the portfolio indicates they have.&lt;br /&gt;
&lt;br /&gt;
Many NPCs will list &amp;quot;longbow with 20 arrows&amp;quot; for gear - to make that appear correctly on the statblock, add the longbow, add the arrows, then put the arrows &amp;quot;into&amp;quot; the bow using the &amp;quot;gear&amp;quot; button (the little bag) on the arrows.&lt;br /&gt;
&lt;br /&gt;
Remember to set important things like composite longbow strength bonuses, holy symbol details, etc.&lt;br /&gt;
&lt;br /&gt;
If you find differences between Hero Lab&#039;s statblock and what&#039;s in the book, try to do what the creators &amp;quot;meant&amp;quot;, even if that means the character will have validation errors. Examples:&lt;br /&gt;
&lt;br /&gt;
1) if the character has too many feats or skill points, that&#039;s fine - just do what the module says. The GM will see any errors when they import the portfolio, and it&#039;s up to them what to do about them.&lt;br /&gt;
&lt;br /&gt;
2) If you can&#039;t get the skills to match up for an obvious reason, then don&#039;t worry about the problem. For example, a common issue is that NPCs have too much gear, so they&#039;re encumbered, so their skills in HL are lower than the portfolio says they should be - that&#039;s a case where we should leave them at the &amp;quot;correct&amp;quot; values and let the GM decide what to do. Another common issue is the creator might have forgotten that a skill is a class skill, leaving it 3 points off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Deliverable 2 - Notes ==&lt;br /&gt;
&lt;br /&gt;
As you work on the module, create a list of any differences between what the module shows, and what Hero Lab shows. For example, if skills are off, note that, and see if you can figure out why it happened - that might lead you to think of a different way to do them so they&#039;ll be correct. This file is important because it will be used by whoever is checking your work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Submission == &lt;br /&gt;
&lt;br /&gt;
Submit both pieces of the project to us - portfolios and notes file. Don&#039;t submit until the portfolios are complete and checked to make sure they&#039;re correct.&lt;br /&gt;
&lt;br /&gt;
= Checking Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
Once both deliverables for an encounter library have been submitted (see above), we&#039;ll a different person to check the work. If you&#039;re checking someone else&#039;s encounter libraries, you need to find places they did something wrong.&lt;br /&gt;
&lt;br /&gt;
Compare the statblocks listed in the module with what&#039;s in Hero Lab - do the details in the module match what&#039;s in HL? If not, consult the notes file you got along with the portfolios and see if the author noticed the problem and provided an explanation. If there is a note about the issue, is it a good one? Can you think of a way to make the statblock match the portfolio better? If there isn&#039;t, make a note of it yourself.&lt;br /&gt;
&lt;br /&gt;
In addition to checking the actual portfolios, check everything from steps #1-3 of the &amp;quot;testing encounter libraries&amp;quot; section below. Make a note of any issues.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve looked over everything in the module, make your list and send it to us. We&#039;ll pass it on to the original author, who will fix things. They should get you a new version of the module once the problems are fixed - once that&#039;s done, verify the issues you noted are fixed, or that you agree with the author on why they shouldn&#039;t be fixed. If there are disagreements, contact us and we&#039;ll resolve them.&lt;br /&gt;
&lt;br /&gt;
= Testing Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 - Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
The text in the &amp;quot;Creatures&amp;quot; entry should be on the Personal tab for all heroes in the portfolio, and any &amp;quot;Treasure&amp;quot;, &amp;quot;Story Awards&amp;quot;, or &amp;quot;Development&amp;quot; entries should be on the NPC tab (using the Additional Info option). If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do note it down to pass along to Paizo. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 - Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3149</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3149"/>
		<updated>2016-12-02T16:58:45Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Testing Adventure Path Encounter Libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Entering Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
These guidelines apply to people who are building Hero Lab encounter libraries, typically for Pathfinder Modules and adventure paths.&lt;br /&gt;
&lt;br /&gt;
There are two deliverables before a project is &amp;quot;complete&amp;quot;, which must be done by different people. Broadly, they&#039;re &amp;quot;do the work&amp;quot; and &amp;quot;check the work&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Deliverable 1 - Create portfolios for every encounter and NPC in the module ==&lt;br /&gt;
&lt;br /&gt;
Every statblock, or partial statblock, printed in the module / adventure path / whatever must have a portfolio created in Hero Lab. The portfolio filenames are what appear in the Encounter Library, so they should be chosen based on the rules in &amp;quot;step 1&amp;quot; of the &amp;quot;testing encounter libraries&amp;quot; section below.&lt;br /&gt;
&lt;br /&gt;
Portfolio names &#039;&#039;&#039;must&#039;&#039;&#039; be correct before we accept this deliverable - don&#039;t submit files with names like &amp;quot;encounter1.por&amp;quot; &amp;quot;encounter2.por&amp;quot; etc, as it makes things harder to QA.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t create a portfolio unless there&#039;s at least a partial statblock present in the module. A partial statblock will typically show the basic stats of the monster, then refer you to a Bestiary - for those, you can import the monster from the encounter builder, and make any changes as required (for example, you might need to apply a template to it, or swap out weapons).&lt;br /&gt;
&lt;br /&gt;
If an encounter includes multiple copies of an NPC, import that many copies into the portfolio. If you need to make changes (like adding templates) it will probably be easier to make one, apply any changes, then duplicate it from the Portfolio menu instead.&lt;br /&gt;
&lt;br /&gt;
Some NPCs (e.g. Pavo Vos on page 18 of Fangwood Keep) will need a full Hero Lab character created for them. In those cases, create the character. Don&#039;t create statblocks for NPCs we don&#039;t have enough information about. For example, if the text mentions &amp;quot;Merlin (elf wizard 4) might be hanging around the sanctum&amp;quot;, don&#039;t create an NPC for him - we can&#039;t, because we don&#039;t know anything useful about him to create the NPC with.&lt;br /&gt;
&lt;br /&gt;
Make sure all characters you create in all portfolios are set to &amp;quot;NPC&amp;quot; and &amp;quot;enemy of the party&amp;quot; on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
For any NPC in a portfolio (either imported from the encounter builder or created by yourself), check that the statblock output matches what&#039;s shown in the &amp;quot;Output Hero Statblock&amp;quot; window (found in the File menu). If anything there is wrong, try to figure out why - is it a mistake you made, or a mistake made by the authors of the encounter?&lt;br /&gt;
&lt;br /&gt;
A convenient way to check whether the statblock is correct is to turn on the &amp;quot;statblock summary info window&amp;quot; for the portfolio - you can find it about 80% of the way down the &amp;quot;hero settings&amp;quot; in the configure hero form. Turn on &amp;quot;show full statblock summary window&amp;quot; and the first info window will be replaced by the character statblock. This allows you to check things without having to go to the File menu every time.&lt;br /&gt;
&lt;br /&gt;
In general, set &amp;quot;base values&amp;quot; before &amp;quot;derived values&amp;quot;. For example, set the character&#039;s ability scores first, then their skills - if you change ability scores after setting their skills, the skill values will change.&lt;br /&gt;
&lt;br /&gt;
If you make any tweaks to the character after checking the statblock, you need to re-check the statblock for any changes. Remember, if you change an ability score, that can affect skills, ability values, etc. &lt;br /&gt;
&lt;br /&gt;
If you find differences between Hero Lab&#039;s statblock and what&#039;s in the book, try to do what the creators &amp;quot;meant&amp;quot;, even if that means the character will have validation errors. Examples:&lt;br /&gt;
&lt;br /&gt;
1) if the character has too many feats or skill points, that&#039;s fine - just do what the module says. The GM will see any errors when they import the portfolio, and it&#039;s up to them what to do about them.&lt;br /&gt;
&lt;br /&gt;
2) If you can&#039;t get the skills to match up for an obvious reason, then don&#039;t worry about the problem. For example, a common issue is that NPCs have too much gear, so they&#039;re encumbered, so their skills in HL are lower than the portfolio says they should be - that&#039;s a case where we should leave them at the &amp;quot;correct&amp;quot; values and let the GM decide what to do. Another common issue is the creator might have forgotten that a skill is a class skill, leaving it 3 points off.&lt;br /&gt;
&lt;br /&gt;
Set the &amp;quot;buy for free&amp;quot; checkbox to buy the character&#039;s gear for free, then set their &amp;quot;starting cash&amp;quot; to be any cash the portfolio indicates they have.&lt;br /&gt;
&lt;br /&gt;
Many NPCs will list &amp;quot;longbow with 20 arrows&amp;quot; for gear - to make that appear correctly on the statblock, add the longbow, add the arrows, then put the arrows &amp;quot;into&amp;quot; the bow using the &amp;quot;gear&amp;quot; button (the little bag) on the arrows.&lt;br /&gt;
&lt;br /&gt;
Remember to set important things like composite longbow strength bonuses, holy symbol details, etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Testing Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 - Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
The text in the &amp;quot;Creatures&amp;quot; entry should be on the Personal tab for all heroes in the portfolio, and any &amp;quot;Treasure&amp;quot;, &amp;quot;Story Awards&amp;quot;, or &amp;quot;Development&amp;quot; entries should be on the NPC tab (using the Additional Info option). If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do note it down to pass along to Paizo. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 - Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3148</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3148"/>
		<updated>2016-03-25T19:17:44Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Testing Adventure Path Encounter Libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Testing Adventure Path Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 - Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
The text in the &amp;quot;Creatures&amp;quot; entry should be on the Personal tab for all heroes in the portfolio, and any &amp;quot;Treasure&amp;quot;, &amp;quot;Story Awards&amp;quot;, or &amp;quot;Development&amp;quot; entries should be on the NPC tab (using the Additional Info option). If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do note it down to pass along to Paizo. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 - Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3147</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3147"/>
		<updated>2016-03-25T19:17:10Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Step 5 Prepare Portfolios in Folder */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Testing Adventure Path Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
The text in the &amp;quot;Creatures&amp;quot; entry should be on the Personal tab for all heroes in the portfolio, and any &amp;quot;Treasure&amp;quot;, &amp;quot;Story Awards&amp;quot;, or &amp;quot;Development&amp;quot; entries should be on the NPC tab (using the Additional Info option). If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do note it down to pass along to Paizo. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 Prepare Portfolios in Folder == &lt;br /&gt;
&lt;br /&gt;
All portfolios should have the &amp;quot;prepare&amp;quot; operation run on them before being checked into Vault. The following options are available:&lt;br /&gt;
&lt;br /&gt;
* Automatically enter subfolders - check this if you need HL to visit all the subfolders of the selected folder to process portfolios in them, too - this will typically be checked for modules and adventure paths&lt;br /&gt;
* Log errors to a file - check this and then you can see any errors generated by the process at the end, rather than part-way through.&lt;br /&gt;
* Select minimal sources - DO NOT select this. All &amp;quot;normal&amp;quot; sources should be selected by default, so that users of the portfolio can use whichever of them they have.&lt;br /&gt;
* Strip missing sources - you usually won&#039;t need to check this, but do it if some of the portfolios report &amp;quot;missing source&amp;quot; errors when loaded.&lt;br /&gt;
* Turn ON Shrink Images - check this to ensure that the images in the portfolio will be shrunk to the appropriate size.&lt;br /&gt;
* Turn OFF Shrink Images - DO NOT select this.&lt;br /&gt;
&lt;br /&gt;
Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3146</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3146"/>
		<updated>2016-03-25T19:13:00Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Step 4 Handle Player Content */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Testing Adventure Path Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
The text in the &amp;quot;Creatures&amp;quot; entry should be on the Personal tab for all heroes in the portfolio, and any &amp;quot;Treasure&amp;quot;, &amp;quot;Story Awards&amp;quot;, or &amp;quot;Development&amp;quot; entries should be on the NPC tab (using the Additional Info option). If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do note it down to pass along to Paizo. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above). (If you&#039;re one of our data file authors, make sure to integrate these into the correct place when the content is accepted.)&lt;br /&gt;
&lt;br /&gt;
== Step 5 Prepare Portfolios in Folder == &lt;br /&gt;
Check the all options except &amp;quot;Turn Off Shrink Images&amp;quot;. Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3145</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3145"/>
		<updated>2016-03-25T19:11:55Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Step 3 Handle Appendices */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Testing Adventure Path Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
The text in the &amp;quot;Creatures&amp;quot; entry should be on the Personal tab for all heroes in the portfolio, and any &amp;quot;Treasure&amp;quot;, &amp;quot;Story Awards&amp;quot;, or &amp;quot;Development&amp;quot; entries should be on the NPC tab (using the Additional Info option). If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do note it down to pass along to Paizo. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 Check Appendices == &lt;br /&gt;
Most APs and some modules include a section on random encounters, which should be represented in Hero Lab in a specific way. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there is a .stock file created that includes all such races. Test them as with any race (see above), comparing the statblocks between HL and the book.&lt;br /&gt;
&lt;br /&gt;
Of special note is that sourcebook information needs to be specially added on the NPC tab for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above), and then integrate them once they are finished.&lt;br /&gt;
&lt;br /&gt;
== Step 5 Prepare Portfolios in Folder == &lt;br /&gt;
Check the all options except &amp;quot;Turn Off Shrink Images&amp;quot;. Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3144</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3144"/>
		<updated>2016-03-25T19:10:22Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Step 2 Check Portfolios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Testing Adventure Path Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
The text in the &amp;quot;Creatures&amp;quot; entry should be on the Personal tab for all heroes in the portfolio, and any &amp;quot;Treasure&amp;quot;, &amp;quot;Story Awards&amp;quot;, or &amp;quot;Development&amp;quot; entries should be on the NPC tab (using the Additional Info option). If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do note it down to pass along to Paizo. To see some common discrepancies between HL and statblocks, see step 5 under [[#Testing_Created_Races|testing created races]] (especially the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure any corrections everywhere are made everywhere it&#039;s used.&lt;br /&gt;
&lt;br /&gt;
Verify that any NPC who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 Handle Appendices == &lt;br /&gt;
Most APs include a section on random encounters, and they have special formatting rules. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there are .stock files created for all such races. Test them as with any race (see above), comparing the statblocks between HL and the book. Of special note is that sourcebook information needs to be specially added for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above), and then integrate them once they are finished.&lt;br /&gt;
&lt;br /&gt;
== Step 5 Prepare Portfolios in Folder == &lt;br /&gt;
Check the all options except &amp;quot;Turn Off Shrink Images&amp;quot;. Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3143</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3143"/>
		<updated>2016-03-25T19:07:39Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Step 1 Check Structure &amp;amp; File Names */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Testing Adventure Path Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
 Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
== Step 2 Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
The text in the &amp;quot;Creatures&amp;quot; entry should be on the Personal tab for all heroes in the portfolio, and any &amp;quot;Treasure&amp;quot;, &amp;quot;Story Awards&amp;quot;, or &amp;quot;Development&amp;quot; entries should be on the NPC tab (using the Additional Info option). If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do note it down to pass along to Paizo. For common discrepancies between HL and statblocks, see the section on testing created races (esp the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure that you make any corrections everywhere else it was used.&lt;br /&gt;
&lt;br /&gt;
Verify that any hero who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 Handle Appendices == &lt;br /&gt;
Most APs include a section on random encounters, and they have special formatting rules. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there are .stock files created for all such races. Test them as with any race (see above), comparing the statblocks between HL and the book. Of special note is that sourcebook information needs to be specially added for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above), and then integrate them once they are finished.&lt;br /&gt;
&lt;br /&gt;
== Step 5 Prepare Portfolios in Folder == &lt;br /&gt;
Check the all options except &amp;quot;Turn Off Shrink Images&amp;quot;. Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3142</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3142"/>
		<updated>2016-03-25T19:07:15Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Testing Adventure Path Encounter Libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;br /&gt;
&lt;br /&gt;
= Testing Adventure Path Encounter Libraries =&lt;br /&gt;
&lt;br /&gt;
== Step 1 Check Structure &amp;amp; File Names == &lt;br /&gt;
&lt;br /&gt;
Examine the layout of the folder. Are the portfolios divided into folders which follow (more or less) the organization of the book, like others in Hero Lab&#039;s encounter library?&lt;br /&gt;
&lt;br /&gt;
For example, most AP issues are divided into parts, so the files may have one folder per part, with perhaps sub-folders for different encounter areas. While examining structure, look for typos in the names of portfolios, and verify that they match the standard format:&lt;br /&gt;
&lt;br /&gt;
 pXX - Map key (if present) - Encounter Name (CR Y)&lt;br /&gt;
&lt;br /&gt;
XX is the page number, and single digit pages should be preceded by a 0 to bring things to a minimum of 2 digits (so that page 11 sorts after page 09). Y is the challenge rating of this encounter. Some aspects may be omitted (for example, there may be no map key for the encounter), but each portfolio should include at least the page number and Encounter name.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example from Rise of the Runelords:&lt;br /&gt;
&lt;br /&gt;
Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p16 - Goblin Pyros (CR2).por&lt;br /&gt;
Chapter 1 - Burnt Offerings\Part 1 - Festival and Fire\p17 - Die, Dog, Die!.por&lt;br /&gt;
Chapter 1 - Burnt Offerings\Part 2 - Local Heroes\p19 - The Desecrated Vault (CR ½).por&lt;br /&gt;
Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p33 - B1 - Guard Cave (CR 2).por&lt;br /&gt;
Chapter 1 - Burnt Offerings\Part 3 - Glass and Wrath\p34 - B4 - Washing Pool (CR 2).por&lt;br /&gt;
&lt;br /&gt;
Note how there are separate folders for parts 1, 2, and 3, which can have multiple portfolios in them, each inside a single &amp;quot;chapter 1&amp;quot; folder. The chapter folder and part 1-3 folders all include the name of the section.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 2 Check Portfolios == &lt;br /&gt;
&lt;br /&gt;
Proceed through each portfolio in the PDF / book, noting each encounter and opening the corresponding Portfolio in HL. Make sure that the correct number and types of heroes are present.&lt;br /&gt;
&lt;br /&gt;
Verify that each NPC is set to &amp;quot;enemy of the party&amp;quot; (if applicable) and specified as an NPC on the configure hero form.&lt;br /&gt;
&lt;br /&gt;
The text in the &amp;quot;Creatures&amp;quot; entry should be on the Personal tab for all heroes in the portfolio, and any &amp;quot;Treasure&amp;quot;, &amp;quot;Story Awards&amp;quot;, or &amp;quot;Development&amp;quot; entries should be on the NPC tab (using the Additional Info option). If the encounter shows a statblock, compare the statblock to what&#039;s output by Hero Lab (under the File menu) to what is in the book. If you find any differences between the book and what Hero Lab generates, note them down for correction (either by yourself or whatever author you are reviewing this for).&lt;br /&gt;
&lt;br /&gt;
It is important to note that THERE WILL BE THINGS WHERE HL HAS IT RIGHT AND THE BOOK IS WRONG. In such cases, do NOT force HL to use the incorrect information, but do note it down to pass along to Paizo. For common discrepancies between HL and statblocks, see the section on testing created races (esp the section on skill discrepancies) above. If this monster is used in several different encounters elsewhere in the encounter library, make sure that you make any corrections everywhere else it was used.&lt;br /&gt;
&lt;br /&gt;
Verify that any hero who has art in the book has the same Art on the personal tab, because this is what is shown for the creature when selecting it in the encounter library and on the Tactical console. In the event of NPCs with more than one piece of art (for example, a head shot and a full body), favor the full body shot by placing it first on the personal tab.&lt;br /&gt;
&lt;br /&gt;
Be sure to read the book&#039;s entry for this encounter carefully. It is possible there might be variations you need to account for (such as sleeping guards not having their armor equipped), or even necessitating an extra version of the encounter (for example, if the adventure mentions another NPC may have retreated here to join up with the current encounter).&lt;br /&gt;
&lt;br /&gt;
== Step 3 Handle Appendices == &lt;br /&gt;
Most APs include a section on random encounters, and they have special formatting rules. Where the encounter describes a variable number of monsters encountered, the portfolio should only include a single representative monster, with a &amp;quot;#1&amp;quot; appended to the name, and the portfolio name should not display the &amp;quot;average CR&amp;quot;. The number serves as a reminder that there are probably more than one in the encounter, and prompts the user to use the incrementer to select the true number in the encounter.&lt;br /&gt;
&lt;br /&gt;
If, on the other hand, the encounter is with a specific group of monsters and described in detail, you should append the CR to the portfolio name and add the encounter description to the Personal tab for the monsters.&lt;br /&gt;
&lt;br /&gt;
Many issues also have Bestiaries in the appendix. Not all monsters defined there may have been used during the earlier parts of the adventure, so make sure there are .stock files created for all such races. Test them as with any race (see above), comparing the statblocks between HL and the book. Of special note is that sourcebook information needs to be specially added for races defined first in a AP appendix, specifying which issue of the AP they premiered in.&lt;br /&gt;
&lt;br /&gt;
==  Step 4 Handle Player Content == &lt;br /&gt;
Scroll through the AP looking for player content defined in this issue, such as new items and feats or deific obediences. Make sure that they are functioning correctly (as appropriate for testing whatever they are, see the guidance above), and then integrate them once they are finished.&lt;br /&gt;
&lt;br /&gt;
== Step 5 Prepare Portfolios in Folder == &lt;br /&gt;
Check the all options except &amp;quot;Turn Off Shrink Images&amp;quot;. Look through the generated log for any errors which may have occurred and double check those portfolios to fix whatever necessary.&lt;br /&gt;
&lt;br /&gt;
== Step 6 Get Package Sources for Portfolios in Folder (only possible for HL staff) == &lt;br /&gt;
Use the generated file to create a table to help you search and add the AP&#039;s GM source to all the things which are referenced in this issue. First scroll down to the bottom section, and replace the &amp;quot;-&amp;quot; which divides the unique ID from the file name with a TAB character. Then go to Google Docs and create a spreadsheet. Copy and paste that bottom section into the spreadsheet, such that the Unique IDs are in the first column and the files are in the second column (this should automatically happen because of the tab). Select both columns, and rearrange things alphabetically by the file name column.&lt;br /&gt;
&lt;br /&gt;
Open all files in a text editor and search for each unique ID and add the GM source to that. As you add the source, delete the file name and move down the line until everything is correctly sourced.&lt;br /&gt;
&lt;br /&gt;
== Step 7 Package Testing == &lt;br /&gt;
Mostly not needed anymore thanks to Colen. Suck that, tedium!&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3136</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3136"/>
		<updated>2015-09-24T18:07:54Z</updated>

		<summary type="html">&lt;p&gt;Colen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3135</id>
		<title>Pathfinder RPG Best Practices</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Pathfinder_RPG_Best_Practices&amp;diff=3135"/>
		<updated>2015-09-24T18:07:33Z</updated>

		<summary type="html">&lt;p&gt;Colen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Testing =&lt;br /&gt;
It&#039;s up to you to ensure that content you submit meets a minimum level of quality before sending it to us. Here are the basics you need to hit before submitting:&lt;br /&gt;
&lt;br /&gt;
*Description text should match the book, without any extra line breaks or incorrect characters&lt;br /&gt;
*Any things should have their appropriate effects when added to the hero. If the thing has multiple different effects under different circumstances (for example, different effects at different character levels), make sure to test every one of those circumstances to ensure it works correctly.&lt;br /&gt;
*No things you create should report script errors when added to the hero, even if it&#039;s in a situation it wasn&#039;t designed for (for example, adding a class-specific feat shouldn&#039;t report errors if the class isn&#039;t present). If a thing has different effects under different circumstances, make sure none of those circumstances cause errors to reported.&lt;br /&gt;
*Statblocks for monsters should match the book, unless Hero Lab is &amp;quot;right&amp;quot; and the book is &amp;quot;wrong&amp;quot;. Hero Lab should display special abilities in the same categories as the book does, and should correctly display other stats.&lt;br /&gt;
&lt;br /&gt;
The only way to test most of these is to test each item individually. For a class ability, add the ability, make sure it has the right effects, and if it&#039;s level dependent, increase or decrease the class level to make sure it doesn&#039;t report any issues. For races, turn on the statblock summary window, and compare the statblock in Hero Lab to what&#039;s shown in the book - you&#039;ll be able to see any differences immediately.&lt;br /&gt;
&lt;br /&gt;
The Quick Reload shortcut, Ctrl+R should let you test these quickly. To increase the speed at which you can reload the data files, you can disable packages you don&#039;t rely on via the Develop menu -&amp;gt; Choose Supplement Packages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= General Issues =&lt;br /&gt;
== What content from an Adventure Path issue should be added? ==&lt;br /&gt;
Add any content which could be used by a player during the course of the AP. This usually means all magic items in the Treasures section, or any feats/traits listed in the first issue of the AP. In most cases, the bestiary section does not need to be entered, unless one of the monsters within can be used as a familiar or animal companion to a PC. Another exception is that some Construct races may have information on the cost to buy them, and in that case the race and the minion object should both be created.&lt;br /&gt;
&lt;br /&gt;
Some APs have sections which contain a deity entry, with special spells and items related to that faith which need entering.&lt;br /&gt;
&lt;br /&gt;
== Reusing Content ==&lt;br /&gt;
It is absolutely encouraged that content be reused. In fact we&#039;ve been making efforts to enable more variable abilities to be a single, moddable special rather than having to create a new version each time. This is especially evident in things like the &amp;quot;Gaze&amp;quot;, for which there are many many different versions. Why is it important that you re-use an old ability rather than creating a new one?&lt;br /&gt;
&lt;br /&gt;
;Reasons&lt;br /&gt;
:1. It reduces clutter when folks are using the editor, which means they are less likely to bootstrap the wrong thing.&lt;br /&gt;
:2. If we need to update something about an ability (such as how it interacts with another ability), we only need to do it once&lt;br /&gt;
:3. When using pre-requisites that search for that ability, you need only check for one thing.&lt;br /&gt;
&lt;br /&gt;
=== Generalizing Content ===&lt;br /&gt;
This may lead to some slight wording awkwardness where the re-used ability refers to its original race or class name. While this isn&#039;t that big of a deal, it&#039;s best to &amp;quot;generalize&amp;quot; the description of the re-used ability, removing references to specific origins. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, Paladins of the Holy Son can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 Paladin level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Could become:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;As a standard action, members of this class can blind evil-doers in 100 ft for 1 minute (DC 10 + 1/2 class level + Charisma modifier).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Helpful Tools ===&lt;br /&gt;
*The #appenddesc macro modifies the description of a certain thing, to add extra text onto the end. It has the advantage of even showing this modification before a thing is added to the hero, and it applies to all copies of that thing. The fact that it must apply to all copies is a disadvantage as well, as it may hit others to which it doesn&#039;t apply. Text added with the macro is placed after the normal description text, but before text from DescAppend (see below).&lt;br /&gt;
&lt;br /&gt;
#appenddesc[UniqueID,&amp;quot;{b}Modification from ABILITY NAME{/b}: Added Text&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
*A more targetted option is the DescAppend field, which allows a non-unique special to be bootstrapped from several different sources with a custom description each time. This is useful for many racial specials such as Poison, Disease, Gaze, Breath Weapon, or Immunity to Magic, which share a common name and mechanic but can vary wildly in effects.&lt;br /&gt;
&lt;br /&gt;
*In some cases the content you may want to reuse is unavailable because it is normally added to a different table on the hero. This is especially the case when an archetype grants access to a different class&#039; Custom Special Abilities (Rage Powers, Rogue Talents, etc), but they would normally go in a table the archetyped class is already using for its own custom special abilities. In this case, you need to override the candidate expression for one of your class&#039;s empty custom special ability tables, to use the new sort of ability.&lt;br /&gt;
&lt;br /&gt;
:For example, a Magus is already using his Primary Custom Special Ability table for Magus Arcana. With the Hexcrafter archetype, he gains access to Witch Hexes (which are Primary abilities for the witch), but since they don&#039;t draw upon the same pool of selection he can&#039;t just lump them into the same table. Thus he overrides his secondary table&#039;s candidate expression to use primary witch abilities like so:&lt;br /&gt;
&lt;br /&gt;
::linkage[varies].field[cCstS2Expr].text = &amp;quot;(SpecSource.cHelpWit) &amp;amp; !Helper.Secondary &amp;amp; !Helper.Tertiary &amp;amp; !Helper.Quaternary &amp;amp; !Helper.Quintenary&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== What should be shown on the Specials Tab? ==&lt;br /&gt;
;Examples&lt;br /&gt;
:Case 1 If the ability has a constant, calculated bonus &#039;&#039;&#039;only&#039;&#039;&#039; then it is &#039;&#039;&#039;not&#039;&#039;&#039; shown on the specials tab or character sheet because its effects are already accounted for.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives +2 to Acrobatics.&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Keen Senses, Armor Training&lt;br /&gt;
&lt;br /&gt;
:Case 2 If it has a bonus which applies in certain situations, but doesn&#039;t require the character to take an action, then it gets a situational applied to the target ability and is shown on the specials tab/character sheet.&lt;br /&gt;
&lt;br /&gt;
::I.E: This ability gives a +2 to Acrobatics to jump&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Elven Magic, Favored Enemy&lt;br /&gt;
&lt;br /&gt;
:Case 3 If the ability has a limited duration and requires some action to begin (even a free action), then it should be shown on the specials tab/character sheet and have an activation on the In-Play tab&lt;br /&gt;
&lt;br /&gt;
::I.E: As a swift action, this ability gives +2 to Acrobatics for a number of rounds equal to your dexterity modifier (minimum 1 rd).&lt;br /&gt;
&lt;br /&gt;
::Sample Abilities: Smite Evil&lt;br /&gt;
&lt;br /&gt;
Some abilities have multiple elements, each of which may fall into a different case above. For example an ability could grant a +2 bonus to Spellcraft checks (case 1), and could be activated to add your Int modifier to Use Magic Device checks for 1 minute (case 3). As long as the ability has at least 1 part which should be on the Specials tab, show it. Anything shown on the Specials tab should have a summary (see Constructing a Summary for tips).&lt;br /&gt;
&lt;br /&gt;
== What should be sourced? ==&lt;br /&gt;
Any thing which the user chooses from a menu and adds to their character should be sourced. Any thing which is not added by the user (usually because it is bootstrapped to something else and brought along with its root), should &#039;&#039;&#039;NOT&#039;&#039;&#039; have a source.&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually sourced&lt;br /&gt;
:Custom Special Abilities&lt;br /&gt;
:Custom Racial Abilities&lt;br /&gt;
:Custom Race traits&lt;br /&gt;
:Archetypes&lt;br /&gt;
:Feats&lt;br /&gt;
:Traits&lt;br /&gt;
:Classes&lt;br /&gt;
:Races&lt;br /&gt;
:Magic Items&lt;br /&gt;
&lt;br /&gt;
;The following types of things are usually &#039;&#039;&#039;NOT&#039;&#039;&#039; sourced:&lt;br /&gt;
:Racial Specials&lt;br /&gt;
:Generic Abilities&lt;br /&gt;
:Class Abilities&lt;br /&gt;
&lt;br /&gt;
== Constructing a Summary ==&lt;br /&gt;
The purpose of a summary is for the user to be able to tell at a glance what a thing does mechanically. It&#039;s a hard thing to do, making summaries both small enough to fit in the limited space, yet keeping their information good. Foremost in your mind should be &amp;quot;What elements need to be conveyed?&amp;quot;, and &amp;quot;How can they be conveyed most efficiently?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
;Common Elements (in order)&lt;br /&gt;
:Action required (&amp;quot;as a swift action&amp;quot;, &amp;quot;over 1 min&amp;quot;, &amp;quot;as imm. action&amp;quot;)&lt;br /&gt;
:Limiting Situations (&amp;quot;on a hit&amp;quot;, &amp;quot;when crit&amp;quot;, &amp;quot;if foe is flat-footed&amp;quot;, &amp;quot;when underground&amp;quot;)&lt;br /&gt;
:Ability range/area/targets (&amp;quot;foe in 100 ft&amp;quot;, &amp;quot;allies in 30 ft&amp;quot;, &amp;quot;100 ft line&amp;quot;)&lt;br /&gt;
:Ability effect (&amp;quot;dazed&amp;quot;, &amp;quot;10d6 fire&amp;quot;, &amp;quot;gain +2 morale bonus to AC&amp;quot;)&lt;br /&gt;
:Ability duration (&amp;quot;for 1 rd&amp;quot;, &amp;quot;until your next turn&amp;quot;, &amp;quot;until atonement&amp;quot;)&lt;br /&gt;
:Resisting the ability (&amp;quot;(Will neg)&amp;quot;, &amp;quot;ignores DR&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The order above is the preferred order. For example &amp;quot;As a swift action when underground, foe in 30 ft has -2 to AC for 1 rd (Will neg).&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Not all abilities will have all these elements, and some will have far more content than you&#039;d like. One trick is that information in the abilities livename does not need to be in the summary, so if you are short on space you may be able to shift info like duration or damage into there. Usage info (&amp;quot;X/day&amp;quot;) and DC is already shown in the livename automatically, so those should almost never be shown in the summary. Also keep in mind that you don&#039;t need to follow proper grammer if space is tight, nor should you fear abbreviations as long as your information is still clear. The human brain is remarkably adept at filling in the blanks.&lt;br /&gt;
&lt;br /&gt;
;Common Abbreviations&lt;br /&gt;
:Memorized -&amp;gt; mem&lt;br /&gt;
:Caster Level -&amp;gt; CL&lt;br /&gt;
:Weapon -&amp;gt; wep&lt;br /&gt;
:Critical -&amp;gt; crit&lt;br /&gt;
:Metamagic -&amp;gt; MM&lt;br /&gt;
:Round(s) -&amp;gt; rd(s)&lt;br /&gt;
:Minute -&amp;gt; min&lt;br /&gt;
:Bonus -&amp;gt; bon (often omitted entirely)&lt;br /&gt;
&lt;br /&gt;
For example, here is a &amp;quot;decompressed&amp;quot; version of the Wild Arcana mythic ability&#039;s summary.&lt;br /&gt;
&lt;br /&gt;
As a swift action, use 1 mythic power to cast any arcane spell from your class lists with a +2 bonus to caster level. The spell doesn&#039;t need need to be known or memorized.&lt;br /&gt;
&lt;br /&gt;
And here is the shortened form&lt;br /&gt;
&lt;br /&gt;
Use 1 power, cast an arcane spell from your class list at +2 CL (doesn&#039;t need to be known/mem).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;A Warning&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Constant, calculated bonuses should never be mentioned in a summary. That runs the risk of confusing the user and resulting in adding the calculated bonus again. For example, an ability which added 1/2 your class level to Perception checks and the same amount to your Survival in the desert, the Summary would mention the bonus to survival, but not mention the perception bonus.&lt;br /&gt;
&lt;br /&gt;
== Situational vs Activation? ==&lt;br /&gt;
In general, if something is always present and active with no action required by you, but only affects you under specific circumstances, use a situational. An example of this is Trap Sense, you don&#039;t need to do anything to benefit from it and are always benefitting from it, even though the circumstance in which it matters (when you are being attacked by a trap) is relatively rare.&lt;br /&gt;
&lt;br /&gt;
If something requires an action by you (even a free one), and then affects you for a limited duration thereafter, use an activation. An example of this would be Smite Evil, you activate it and then it gives you a bonus until that foe is defeated.&lt;br /&gt;
&lt;br /&gt;
= Creating Races =&lt;br /&gt;
Races are among the most complex, fiddly things in pathfinder (especially high CR), but also one of the most important to do well. Since they are so complex there is little general procedure that can be outlined, and thorough testing is the most reliable way to get things done.&lt;br /&gt;
&lt;br /&gt;
== Racial Variants ==&lt;br /&gt;
If you can avoid it, do not create two versions of the same race. It is better that a racial variant be indicated by the addition of a Racial Custom Special ability than by creating a whole new race which only varies in a few abilities. Racial Custom Specials are capable of replacing and disabling existing racial specials, just like Alternate Racial Traits do, and that combined with eval scripts on the RCS to manipulate the race&#039;s fields, plus bootstrapping new abilities will usually get you where you need to go.&lt;br /&gt;
&lt;br /&gt;
How should you decide whether a variant warrants being split off into its own race? There isn&#039;t a hard or fast rule, but a good indicator is whether the variant has a full statblock spelled out where it is described. If the variant is simply described in a bit of text about how it differs from the base, then you&#039;re better off adding a RCS for it.&lt;br /&gt;
&lt;br /&gt;
Note that we haven&#039;t always been the best at enforcing this, but it is the standard nonetheless.&lt;br /&gt;
&lt;br /&gt;
== PC Races vs. Monster Races ==&lt;br /&gt;
A &amp;quot;PC Race&amp;quot;, for our discussion, is any race which has no racial hit dice and is thus solely defined by its class levels. Halflings and orcs would both be PC races, even though orcs are usually antagonists and unlikely to be played as a PC.&lt;br /&gt;
&lt;br /&gt;
A &amp;quot;Monster Race&amp;quot; is any race with racial hit dice, regardless of the likelyhood of their taking class levels. Giant Ants are mindless and would almost never have class levels; Ropers are at least intelligent and might rarely have class levels; Gnolls are humanoids and are quite likely to advance in class levels, but all three have racial HD and are considered monster races.&lt;br /&gt;
&lt;br /&gt;
== Racial Spell-Like Abilities ==&lt;br /&gt;
SLA&#039;s appear frequently for monster races, and less so for PC races. There are several things to keep in mind when bootstrapping a SLA.&lt;br /&gt;
&lt;br /&gt;
=== Marking PC Race Spell-Like Abilities ===&lt;br /&gt;
Any spell like ability bootstrapped to a PC race should have the Helper.RacSpAbil tag added to the bootstrap. PC race SLA and Monster race SLAs have a different format in the official paizo statblock, and are shown in different tables, and this tag is thus necessary for proper formatting.&lt;br /&gt;
&lt;br /&gt;
Other than that, you may want to add further tags to mark them for this specific race (which is usually done either with a Custom or SpecSource tag). This is commonly seen in cases where the PC race only gains the SLA if they meet a certain minimum attribute (such as the Gnome race needing Charisma of at least 11 to use its SLAs). Bootstrap conditions cannot be used to enforce this because attribute values are determined so late. Instead an eval script must detect the attribute, and if necessary seek out the marked SLAs to hide them with a Hide.Spell tag. Marking the target SLA prevents the eval script from accidentally affecting other spell like abilities gained from feats or other sources.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability Name ===&lt;br /&gt;
Many spell like abilities have limitations or modifications in how they work, and these should be recorded in the livename field when bootstrapping, within parenthesis after the name. For example, many outsiders have the ability to use greater teleport as a SLA, but only on themselves and 50 lbs of gear, so this spell like ability would be bootstrapped with a livename of &amp;quot;Teleport, Greater (self plus 50 lbs. of objects only)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Warning&#039;&#039;&lt;br /&gt;
The hero lab engine has automatic logic to rearrange the comma in between the spell names when generating a statblock name (to make &amp;quot;teleport, greater&amp;quot; -&amp;gt; &amp;quot;greater teleport&amp;quot;), but this will also catch any comma in the mod text. For this reason, you should try to avoid placing a comma in the parenthesis if you can. If you do not avoid that, you should set the sbName field specially when bootstrapping, which will prevent the automatic logic from running.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability DC ===&lt;br /&gt;
Unless specified otherwise, SLAs are assumed to calculate their DC as 10 + Spell Level (Sor/Wiz/Clr version) + Charisma modifier.&lt;br /&gt;
&lt;br /&gt;
;What if the DC listed isn&#039;t the DC I want for this monster?&lt;br /&gt;
*Check the level of the spell you have bootstrapped. Is there a version which is of higher or lower level which will correct the descrepancy? Keep in mind that a SLA&#039;s level is assumed to be either the Sor/Wiz or Clr level version of the spell. If the Slow spell you bootstrapped has a DC 1 lower than you expected, perhaps you mistakenly bootstrapped the Summoner&#039;s 2nd level version (instead of the 3rd level sorcerer version). DO NOT switch from the assumed version to a wacky other class&#039;s spell in order to fix a DC issue.&lt;br /&gt;
*Check to see if the monster uses a different mental attribute for its spell like abilities than Charisma. This is probably something which should be stated somewhere in the monster&#039;s description, and if it isn&#039;t you should check among all its listed SLAs with a DC. This association grows stronger the more abilities that support it, and the wider the difference between the attribute modifiers. If there are 6 different SLAs, and all of them are off by the difference between the Wisdom and Charisma modifier then I would be comfortable making that call. If there is only 1 SLA with a DC shown, even if the difference fit, I would hesitate to make this change. Furthermore, if the DC difference is only 1, then it is more likely that an early version of the monster had a slightly higher Charisma which got adjusted down and the editors forgot to lower the SLA DCs appropriately.&lt;br /&gt;
::If you need to adjust the associated attribute to something else, you can bootstrap the SLA with a StandardDC tag for the new attribute. For example, StandardDC.aINT will make the DC be calculated by Intelligence rather than Charisma. This is on a bootstrap by bootstrap basis, so doing it in one place will only affect that one SLA.&lt;br /&gt;
*If the DC is 2 points low, check to see if the monster has Ability Focus for this SLA. If so, does your current version have that and has it selected the right target?&lt;br /&gt;
*Check if the monster has some other racial ability which could be increasing the DC of spells of a certain school or type. Is that functioning or not?&lt;br /&gt;
*At this point, you can probably assume it is a mistake on the part of the book&#039;s creators, note it down for reporting, and move on.&lt;br /&gt;
::I do not recommend ever doing so, but you can also add a flat bonus or penalty to a bootstrapped SLA&#039;s DC by placing a value in the sDC field when bootstrapping.&lt;br /&gt;
&lt;br /&gt;
=== Spell-Like Ability CL ===&lt;br /&gt;
In most cases the CL of a SLA will be automatically calculated. For those bootstrapped to a race the assumption is that they will be based on the value of the rSpCastLev field (which can be set specially but defaults to the number of racial HD). There are several tags which can be applied when bootstrapping to change that. All of these must be combined with the Helper.SpellLike tag on all SLAs.&lt;br /&gt;
&lt;br /&gt;
*Helper.ClsCastLev makes the CL of the spell like ability calculated based on total class level rather than the rSpCastLev field on the race. It is used for many of the ARG races that have spell like abilities (such as the Ifrit and the Aasimar).&lt;br /&gt;
*Helper.HDCastLev makes the CL of the spell like ability calculated based on total hit dice (both racial and class) rather than the rSpCastLev field on the race. HDCastLev overrides ClsCastLev. It is used for some spell like abilities from feats in the ARG (such as Magical Tail).&lt;br /&gt;
*Helper.TrCastLev makes the CL of the spell like ability calculated based on mythic tier. TrCastLev overrides both ClsCastLev and ClsCastLev. It is used for some path abilities from Mythic Adventures (such as Commune with Power).&lt;br /&gt;
&lt;br /&gt;
== Testing Created Races ==&lt;br /&gt;
Testing should be carried out in a branch of the pathfinder files free of .user files, to prevent errors on load when someone else opens any prepared stock portfolio.&lt;br /&gt;
&lt;br /&gt;
Step 1: Open a new portfolio and on the configure hero form set the character type to &amp;quot;NPC&amp;quot; and the alliance to &amp;quot;Enemy of Party&amp;quot;. If this is a PC race with adventuring class levels, set the ability array to &amp;quot;Heroic NPC (15/14/13/12/10/8)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Step 2: Go to the Background tab and select the race you wish to test. Give it a quick look to make sure that the italicized text at the top is correct, and that the description for the race is there and correctly formatted.&lt;br /&gt;
&lt;br /&gt;
Step 3: Set up the race to match the statblock. For PC races this usually means setting the attributes, adding class levels and making choices for those classes (such as memorizing spells), as well as adding equipment shown in the statblock and equipping it. If the tactics section of the statblock mentions that a certain spell effect is assumed to be on the hero, add that to the adjustments tab. Do the same for any constant spell like abilities which may be present (if said abilities are likely to affect the statblock). Many monster races have no class levels and eschew equipment, so you may be able to skip this step entirely.&lt;br /&gt;
&lt;br /&gt;
Step 4: Go to &amp;quot;File -&amp;gt; Output Hero Statblock&amp;quot; and then compare the generated statblock to the one shown in the book. Go line by line, item by item for this initial check. Make note of any discrepancies between the two statblocks, such as a racial special being shown on the wrong line (or not at all), differences in naming (for racial specials, SLAs, etc.), attack bonuses not matching, skill totals not matching, and so on.&lt;br /&gt;
&lt;br /&gt;
Step 5: Investigate and fix the issues you found in step 4. &lt;br /&gt;
*Skills are a frequent issue between HL and official statblocks. Here are some tips at resolving them:&lt;br /&gt;
::Look for patterns in the skill ranks spent. Most authors don&#039;t sprinkle around skill ranks willy-nilly, either maximizing some skills and putting others at a lower level (usually half), or dividing ranks more or less evenly among all skills (all half, all max, so on). In any of the following steps, if you can bring the ranks closer to a pattern then you&#039;re probably going in the right direction.&lt;br /&gt;
::For monster races, you have a wide latitude in assigning class skills, so if the bonus is low by three and it isn&#039;t already a class skill, making it so can resolve things. Similarly, if the monster seems overspent on skill ranks by a multiple of 3, then look for skills which you can make class and drop by 3 ranks to get closer to parity.&lt;br /&gt;
::For PC races, Hero lab is often more inclusive of skill bonuses and penalties than paizo&#039;s statblocks are. For example, paizo statblocks usually assume a character has tools to use any craft skills, even if none are listed in the gear section. The skill total also usually doesn&#039;t count the bonus for mwk tools either, even when those ARE listed in the gear section. Hero Lab applies the bonuses to disable device from a rogue&#039;s trapfinding ability, while the official statblock does not, and so on. With time and a little practice you&#039;ll get a sense for what HL adds that paizo doesn&#039;t and learn to filter that out when looking for patterns.&lt;br /&gt;
::Paizo applies Armor check penalties inconsistently from statblock to statblock. The general assumption seems to be that all characters are lightly encumbered, so if you can store any non-combat gear elsewhere (like on a mount or dropped to the ground) in order to reach light encumbrance, do so. If you can&#039;t get to light encumbrance without dropping things like weapons and armor, then make a note of that to report. If you&#039;re still having trouble getting the skill ranks to work out, try unequipping any armor and going to light encumbrance. If you can make the skill totals work out that way, then it is likely that paizo forgot to add the ACP when building the statblocks, so re-equip the armor and make a note for Paizo stating the discrepancy.&lt;br /&gt;
*Generalized, re-used racial specials often need to be set in a special way so that they create their name and apply their effects in a consistent manner. If you&#039;ve bootstrapped one and it doesn&#039;t seem to be working like expected, try copying the special and looking at the eval scripts on it. Or make a copy of a monster which has the same ability and see how it does the bootstrapping.&lt;br /&gt;
*Small attack bonus mismatches seem to be most commonly from development tweaks when paizo is creating a monster or NPC and decide to switch up the attributes but forgetting to adjust the follow on stats. In this case you can assume HL is in the right and make a note for Paizo.&lt;br /&gt;
*Natural attacks are also a place where we have some leeway, like with class skills. If you&#039;ve bootstrapped a natural attack which is normally secondary, but the official statblock shows an attack bonus 5 higher and the full strength bonus to damage, then it is likely that for this monster it is a primary attack and you can bootstrap it with Helper.NatPrimary. It is rarer for a normally primary attack to be secondary for a monster, but you can accomplish that with Helper.NatOverSec. You should only apply that if the monster is not wielding manufactured weapons in combination with their natural attack, as Hero Lab automatically forces natural attacks to secondary when that happens.&lt;br /&gt;
&lt;br /&gt;
Step 6: Repeat step 4 and confirm all issues have either been fixed or properly noted for paizo.&lt;br /&gt;
&lt;br /&gt;
Step 7: Take the time to examine the character as shown in hero lab. For example, check the specials tab and make sure the racial specials of this creature have appropriate summaries. If the race has any activated abilities, test them out on the in-play tab as well. If you discover anything wrong during this step, fix it before moving on to the final step.&lt;br /&gt;
&lt;br /&gt;
Step 8: Now that everything is done, create the stock version of this race. Go to the NPC tab and if this is a Monster race, hit the Default button to populate the ecology entries for the character. Make sure they are in sentence case (if they aren&#039;t then adjust them on the race and hit the button again). PC races usually have tactics entries (such as Before Combat, During Combat, or Base Statistics) which you add on the NPC tab, and further description text (the stuff after the statblock) which you should copy onto the Personal tab. Finally, use &amp;quot;Develop -&amp;gt; Prepare Portfolio for Distribution&amp;quot; and save or re-save the portfolio (if you hadn&#039;t already).&lt;br /&gt;
&lt;br /&gt;
= Creating Magic Items =&lt;br /&gt;
&lt;br /&gt;
== General Name Issues ==&lt;br /&gt;
Magic items are named in sentence case, with the first letter capitalized and all others (save proper nouns) not. Artifacts tend to be an exception, and you should look at the description text of an artifact to see how it is capitalized there.&lt;br /&gt;
&lt;br /&gt;
;Examples&lt;br /&gt;
:Cloak of protection +1&lt;br /&gt;
:Boots of striding and springing&lt;br /&gt;
:Bastard&#039;s sting&lt;br /&gt;
:Baba Yaga&#039;s besom&lt;br /&gt;
:Thundering blade of the house of Sugimatu&lt;br /&gt;
:Deskari&#039;s Tooth&lt;br /&gt;
&lt;br /&gt;
== Specific Magic Armor/Weapons ==&lt;br /&gt;
Most specific magic arms have item powers or materials, which should be added through the editor by clicking on the Materials and Weapon or Armor Powers buttons. You can also click on the &amp;quot;Gizmo&amp;quot; button on the upper right, and bootstrap that material or power to the listed entity. In many cases, the bootstrapped picks will take care of most of the coding needed.&lt;br /&gt;
&lt;br /&gt;
== Testing Created Magic Items ==&lt;br /&gt;
Once you have hit the test now button or reloaded the system, follow these steps to make sure the item is correct. For simplicity, testing should usually be carried out on a blank character, so that any changes will be immediately obvious.&lt;br /&gt;
&lt;br /&gt;
*Step 1 Go to the appropriate tab and table to add the item and visually inspect it in the selection window. Compare the heading information (like item caster level, aura, price, and so on) to the source and make note of discrepancies to correct. &lt;br /&gt;
*Step 2 Scan the description for errors like incorrect structure (linebreaks where there should be none, paragraphs smashed together), typos (often there is a space between f and l, caused by copy paste from pdfs), missing italics of spell/magic item names, missing alternate ability info (as granted by SpInfo and DescInfo tags) and so on.&lt;br /&gt;
*Step 3 Verify the item is correctly sourced.&lt;br /&gt;
*Step 4 Add the item to the hero and confirm that any eval scripts on the item behave as expected. If it is something which requires being equipped, make sure that its effects are not yet seen. Toggle the equip state on and off and make sure it works in both cases. If the item has effects which are &amp;quot;always on&amp;quot; and so it isn&#039;t equipped, you can do the same by adding and deleting the item. If the item must select something else, verify the list of selections behaves as expected as well.&lt;br /&gt;
*Step 5 Check alternate tabs. If the item has charges or bootstraps item spells, go to the In-Play or Spells tab to verify that they are set up correctly. Be especially careful of spells, which may have limitations that should be spelled out in the livename.&lt;br /&gt;
*Step 6 If the item should be shown on the specials tab, go there and take a look at it&#039;s summary. If the summary is too long and gets cut off, try to condense it further so all pertinent info is shown (see [[#Constructing a Summary|Constructing a Summary]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Entering Stock Heroes =&lt;br /&gt;
&lt;br /&gt;
== Populate the NPC tab ==&lt;br /&gt;
* Make sure the sourcebook name and SKU is set properly for the character. This is the book that this specific NPC is printed in. For example, if the NPC was printed in &amp;quot;Goblins of Golarion&amp;quot; but uses a race from the Bestiary, enter the sourcebook as &amp;quot;Goblins of Golarion&amp;quot;, not the Bestiary.&lt;br /&gt;
* Add any appropriate tactics, ecology, etc NPC information from the NPC&#039;s entry.&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=LoadOnce_Element_(Data)&amp;diff=3134</id>
		<title>LoadOnce Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=LoadOnce_Element_(Data)&amp;diff=3134"/>
		<updated>2014-12-08T06:44:47Z</updated>

		<summary type="html">&lt;p&gt;Colen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;loadonce&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
The loadonce element has the following attributes:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|key&lt;br /&gt;
|Key – Specifies a unique text key for the file. Only one file will ever be loaded for any given key.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If a &amp;quot;loadonce&amp;quot; element is found at the top of a file, the file is only parsed if another file with the same key has NOT been loaded. If a file with that key has already been loaded, the contents of the file are totally ignored.&lt;br /&gt;
&lt;br /&gt;
If two or more files have the same loadonce element, exactly one of them will be loaded, with no guarantee of which one it will be. Don&#039;t assume anything about which file of a pair will be loaded - for example, on one computer, file A might be loaded and file B skipped, while on another computer file B might be loaded and file A skipped.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please note&#039;&#039;&#039;: When choosing your key, make sure to choose something unique that won&#039;t be picked by anyone else! If you and someone else both use the same key, only one of your files will be loaded, which would cause problems that would be very hard to debug.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
If two files had the following loadonce elements, only a single one of them would be loaded:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File A: &amp;lt;loadonce key=&amp;quot;John Smith&#039;s Source Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File B: &amp;lt;loadonce key=&amp;quot;John Smith&#039;s Source Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If four files had the following loadonce elements, file A would be loaded and only one of file B, C or D would also be loaded:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File A: &amp;lt;loadonce key=&amp;quot;John Smith&#039;s Source Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File B: &amp;lt;loadonce key=&amp;quot;John Smith&#039;s Other Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File C: &amp;lt;loadonce key=&amp;quot;John Smith&#039;s Other Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File D: &amp;lt;loadonce key=&amp;quot;John Smith&#039;s Other Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=LoadOnce_Element_(Data)&amp;diff=3133</id>
		<title>LoadOnce Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=LoadOnce_Element_(Data)&amp;diff=3133"/>
		<updated>2014-12-08T06:44:19Z</updated>

		<summary type="html">&lt;p&gt;Colen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;loadonce&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
The loadonce element has the following attributes:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|key&lt;br /&gt;
|Key – Specifies a unique text key for the file. Only one file will ever be loaded for any given key.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If a &amp;quot;loadonce&amp;quot; element is found at the top of a file, the file is only parsed if another file with the same key has NOT been loaded. If a file with that key has already been loaded, the contents of the file are totally ignored.&lt;br /&gt;
&lt;br /&gt;
If two or more files have the same loadonce element, exactly one of them will be loaded, with no guarantee of which one it will be. Don&#039;t assume anything about which file of a pair will be loaded - for example, on one computer, file A might be loaded and file B skipped, while on another computer file B might be loaded and file A skipped.&lt;br /&gt;
&lt;br /&gt;
**Please note**: When choosing your key, make sure to choose something unique that won&#039;t be picked by anyone else! If you and someone else both use the same key, only one of your files will be loaded, which would cause problems that would be very hard to debug.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
If two files had the following loadonce elements, only a single one of them would be loaded:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File A: &amp;lt;loadonce key=&amp;quot;John Smith&#039;s Source Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File B: &amp;lt;loadonce key=&amp;quot;John Smith&#039;s Source Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If four files had the following loadonce elements, file A would be loaded and only one of file B, C or D would also be loaded:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File A: &amp;lt;loadonce key=&amp;quot;John Smith&#039;s Source Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File B: &amp;lt;loadonce key=&amp;quot;John Smith&#039;s Other Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File C: &amp;lt;loadonce key=&amp;quot;John Smith&#039;s Other Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File D: &amp;lt;loadonce key=&amp;quot;John Smith&#039;s Other Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=LoadOnce_Element_(Data)&amp;diff=3132</id>
		<title>LoadOnce Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=LoadOnce_Element_(Data)&amp;diff=3132"/>
		<updated>2014-12-08T06:30:39Z</updated>

		<summary type="html">&lt;p&gt;Colen: Created page with &amp;quot;{{context|Kit Reference|Data File Reference}}  ==The &amp;quot;loadonce&amp;quot; Element==  The loadonce element has the following attributes:  :{| class=&amp;quot;infotable&amp;quot; |class=&amp;quot;leftnormal&amp;quot;|key |K...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;loadonce&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
The loadonce element has the following attributes:&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|key&lt;br /&gt;
|Key – Specifies a unique text key for the file. Only one file will ever be loaded for any given key.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If a &amp;quot;loadonce&amp;quot; element is found at the top of a file, the file is only parsed if another file with the same key has NOT been loaded. If a file with that key has already been loaded, the contents of the file are totally ignored.&lt;br /&gt;
&lt;br /&gt;
If two or more files have the same loadonce element, exactly one of them will be loaded, with no guarantee of which one it will be. Don&#039;t assume anything about which file of a pair will be loaded - for example, on one computer, file A might be loaded and file B skipped, while on another computer file B might be loaded and file A skipped.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
&lt;br /&gt;
If two files had the following loadonce elements, only a single one of them would be loaded:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File A: &amp;lt;loadonce key=&amp;quot;Source Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File B: &amp;lt;loadonce key=&amp;quot;Source Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If four files had the following loadonce elements, file A would be loaded and only one of file B, C or D would also be loaded:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
File A: &amp;lt;loadonce key=&amp;quot;Source Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File B: &amp;lt;loadonce key=&amp;quot;Other Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File C: &amp;lt;loadonce key=&amp;quot;Other Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File D: &amp;lt;loadonce key=&amp;quot;Other Definition File&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=FileInfo_Element_(Data)&amp;diff=3131</id>
		<title>FileInfo Element (Data)</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=FileInfo_Element_(Data)&amp;diff=3131"/>
		<updated>2014-12-08T06:22:28Z</updated>

		<summary type="html">&lt;p&gt;Colen: Created page with &amp;quot;{{context|Kit Reference|Data File Reference}}  ==The &amp;quot;fileinfo&amp;quot; Element==  This element allows you to specify information about the author, history, and &amp;quot;to-do&amp;quot; list for the f...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference|Data File Reference}}&lt;br /&gt;
&lt;br /&gt;
==The &amp;quot;fileinfo&amp;quot; Element==&lt;br /&gt;
&lt;br /&gt;
This element allows you to specify information about the author, history, and &amp;quot;to-do&amp;quot; list for the file. This can be useful for leaving yourself notes, providing information about what&#039;s in the file for other users, or identifying yourself as the creator of a file so that other people can contact you.&lt;br /&gt;
&lt;br /&gt;
The contents of the &amp;quot;fileinfo&amp;quot; element can be viewed in the Hero Lab editor via the &amp;quot;View&amp;quot; menu.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;fileinfo&amp;quot; element has no attributes, but possesses several child elements that can be used to store information. The list of these child elements is below and must appear in the order shown.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|info_author&lt;br /&gt;
|An optional &amp;quot;info_author&amp;quot; element can be used to hold information about the file&#039;s author, by storing text in its PCDATA.&lt;br /&gt;
|-&lt;br /&gt;
|info_history&lt;br /&gt;
|An optional &amp;quot;info_history&amp;quot; element can be used to hold information about historical details and changes to the file, by storing text in its PCDATA.&lt;br /&gt;
|-&lt;br /&gt;
|info_todo&lt;br /&gt;
|An optional &amp;quot;info_todo&amp;quot; element can be used to hold information about work still to be done on the file, by storing text in its PCDATA.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Data_File_Reference&amp;diff=3130</id>
		<title>Data File Reference</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Data_File_Reference&amp;diff=3130"/>
		<updated>2014-12-08T06:16:25Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Structural Composition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
The data file is where you&#039;ll be defining all of the top-level elements that the user will directly control. This includes visual elements like panels, layouts, templates, and portals. It also includes game system elements like things.&lt;br /&gt;
&lt;br /&gt;
All data files have the &amp;quot;.dat&amp;quot; file extension and are loaded after all of the structural files have defined the framework for the game system.&lt;br /&gt;
&lt;br /&gt;
This section outlines the structure and mechanics for writing a definition file.&lt;br /&gt;
&lt;br /&gt;
{{important}}This section utilizes [[Kit Reference#conventions|critical notational conventions]] that should be reviewed.&lt;br /&gt;
&lt;br /&gt;
{{important}}Just because you &#039;&#039;&#039;can&#039;&#039;&#039; put numerous different elements in the same file does not mean you &#039;&#039;&#039;should&#039;&#039;&#039; do so. Keeping your data files small and focused will also keep them much more manageable, so break up all the information across files where appropriate. See the Skeleton data files for examples of this.&lt;br /&gt;
&lt;br /&gt;
==Structural Composition==&lt;br /&gt;
&lt;br /&gt;
The overall file structure is that of a standard XML file. The file must start with an XML version element in the form: &amp;quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&amp;quot;. Following this, the top-level XML element must be a &amp;quot;document&amp;quot; and it must have a &amp;quot;signature&amp;quot; attribute containing the explicit value &amp;quot;Hero Lab Data&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
The following table defines the attributes for a &amp;quot;document&amp;quot; element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|signature&lt;br /&gt;
|Text – Must be the value &amp;quot;Hero Lab Data&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Within the document element, every data file possesses the following child elements, appearing in the sequence given and with the names specified.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|{{flalt|LoadOnce Element (Data)|loadonce}}&lt;br /&gt;
|A single &amp;quot;loadonce&amp;quot; element may appear as defined by the given link. This element allows you to conditionally exclude files from being loaded if a similar file has already been loaded.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|FileInfo Element (Data)|fileinfo}}&lt;br /&gt;
|A single &amp;quot;fileinfo&amp;quot; element may appear as defined by the given link. This element specifies information about the data file and its author.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Procedure Element (Data)|procedure}}&lt;br /&gt;
|Zero or more &amp;quot;procedure&amp;quot; elements may appear as defined by the given link. This element specifies a collection of procedures that may be called by scripts throughout the data files.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Thing Element (Data)|thing}}&lt;br /&gt;
|Zero or more &amp;quot;thing&amp;quot; elements may appear as defined by the given link. This element specifies various thing objects for use within the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Portal Element (Data)|portal}}&lt;br /&gt;
|Zero or more &amp;quot;portal&amp;quot; elements may appear as defined by the given link. This element specifies an assortment of portals for use within layouts.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Template Element (Data)|template}}&lt;br /&gt;
|Zero or more &amp;quot;template&amp;quot; elements may appear as defined by the given link. This element specifies an assortment of templates for use within layouts.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Layout Element (Data)|layout}}&lt;br /&gt;
|Zero or more &amp;quot;layout&amp;quot; elements may appear as defined by the given link. This element specifies an assortment of layouts for use within panels, forms, and sheets.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Panel Element (Data)|panel}}&lt;br /&gt;
|Zero or more &amp;quot;panel&amp;quot; elements may appear as defined by the given link. This element specifies a variety of panels that will be presented to the user as part of the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Form Element (Data)|form}}&lt;br /&gt;
|Zero or more &amp;quot;form&amp;quot; elements may appear as defined by the given link. This element specifies a variety of forms that will be presented to the user as part of the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Sheet Element (Data)|sheet}}&lt;br /&gt;
|Zero or more &amp;quot;sheet&amp;quot; elements may appear as defined by the given link. This element specifies a variety of sheets that will be used for printouts within dossiers.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Dossier Element (Data)|dossier}}&lt;br /&gt;
|Zero or more &amp;quot;dossier&amp;quot; elements may appear as defined by the given link. This element specifies a collection of dossiers that the user can select for character output.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Hidden Element (Data)|hidden}}&lt;br /&gt;
|Zero or more &amp;quot;hidden&amp;quot; elements may appear as defined by the given link. This element identifies things that HL should remove from use within the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Edit Thing Element (Data)|editthing}}&lt;br /&gt;
|Zero or more &amp;quot;editthing&amp;quot; elements may appear as defined by the given link. This element specifies a variety of elements that enable use of the integrated Editor for creation of things.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|FAQ Element (Data)|faq}}&lt;br /&gt;
|Zero or more &amp;quot;faq&amp;quot; elements may appear as defined by the given link. This element specifies various FAQ entries that will be included within the FAQ page for the game system.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==DTD==&lt;br /&gt;
&lt;br /&gt;
To edit data files in your XML editor, you can use the [[Data File DTD|Data File DTD here]].&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
	<entry>
		<id>https://hlkitwiki.wolflair.com//index.php?title=Structural_File_Reference&amp;diff=3129</id>
		<title>Structural File Reference</title>
		<link rel="alternate" type="text/html" href="https://hlkitwiki.wolflair.com//index.php?title=Structural_File_Reference&amp;diff=3129"/>
		<updated>2014-12-08T06:15:08Z</updated>

		<summary type="html">&lt;p&gt;Colen: /* Structural Composition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{context|Kit Reference}}&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Structural files are where you&#039;ll be defining all of the pieces that provide the underlying framework for the game system. They are loaded immediately after the definition file.&lt;br /&gt;
&lt;br /&gt;
The Kit supports four different structural file types that share the identical contents. They possess the file extensions &amp;quot;.1st&amp;quot;, &amp;quot;core&amp;quot;, &amp;quot;.str&amp;quot;, and &amp;quot;.aug&amp;quot;. These files are always loaded in that same order.&lt;br /&gt;
&lt;br /&gt;
This section outlines the structure and mechanics for writing a structural file.&lt;br /&gt;
&lt;br /&gt;
{{important}}This section utilizes [[Kit Reference#conventions|critical notational conventions]] that should be reviewed.&lt;br /&gt;
&lt;br /&gt;
{{important}}Just because you &#039;&#039;&#039;can&#039;&#039;&#039; put numerous different elements in the same file does not mean you &#039;&#039;&#039;should&#039;&#039;&#039; do so. Keeping your data files small and focused will also keep them much more manageable, so break up all the information across files where appropriate. See the Skeleton data files for examples of this.&lt;br /&gt;
&lt;br /&gt;
==Structural Composition==&lt;br /&gt;
&lt;br /&gt;
The overall file structure is that of a standard XML file. The file must start with an XML version element in the form: &amp;quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&amp;quot;. Following this, the top-level XML element must be a &amp;quot;document&amp;quot; and it must have a &amp;quot;signature&amp;quot; attribute containing the explicit value &amp;quot;Hero Lab Structure&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
The following table defines the attributes for a &amp;quot;document&amp;quot; element.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|signature&lt;br /&gt;
|Text – Must be the value &amp;quot;Hero Lab Structure&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Within the document element, every structural file possesses the following child elements, appearing in the sequence given and with the names specified.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;infotable&amp;quot;&lt;br /&gt;
|class=&amp;quot;leftnormal&amp;quot;|{{flalt|LoadOnce Element (Data)|loadonce}}&lt;br /&gt;
|A single &amp;quot;loadonce&amp;quot; element may appear as defined by the given link. This element allows you to conditionally exclude files from being loaded if a similar file has already been loaded.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|EnMasse Element (Data)|enmasse}}&lt;br /&gt;
|Zero or more &amp;quot;enmasse&amp;quot; elements may appear as defined by the given link. This element specifies categories of things to automatically add to every actor.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Bootstrap Element (Data)|bootstrap}}&lt;br /&gt;
|Zero or more &amp;quot;bootstrap&amp;quot; elements may appear as defined by the given link. This element specifies specific things to automatically add to every actor.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|AutoAdd Element (Data)|autoadd}}&lt;br /&gt;
|Zero or more &amp;quot;autoadd&amp;quot; elements may appear as defined by the given link. This element identifies choices that are pre-selected for every actor.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|UsagePool Element (Data)|usagepool}}&lt;br /&gt;
|Zero or more &amp;quot;usagepool&amp;quot; elements may appear as defined by the given link. This element specifies usage pools for use by the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Reference Element (Data)|reference}}&lt;br /&gt;
|Zero or more &amp;quot;reference&amp;quot; elements may appear as defined by the given link. This element details references used throughout the data files.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Group Element (Data)|group}}&lt;br /&gt;
|Zero or more &amp;quot;group&amp;quot; elements may appear as defined by the given link. This element defines a collection of tag groups and their tags.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Source Element (Data)|source}}&lt;br /&gt;
|Zero or more &amp;quot;source&amp;quot; elements may appear as defined by the given link. This element specifies sources that can be configured by the user for each actor.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Resource Element (Data)|resource}}&lt;br /&gt;
|Zero or more &amp;quot;resource&amp;quot; elements may appear as defined by the given link. This element defines resources like fonts and bitmaps used by styles for visual display.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Style Element (Data)|style}}&lt;br /&gt;
|Zero or more &amp;quot;style&amp;quot; elements may appear as defined by the given link. This element specifies an assortment of visual styles that can be used by portals.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Component Element (Data)|component}}&lt;br /&gt;
|Zero or more &amp;quot;component&amp;quot; elements may appear as defined by the given link. This element specifies a variety of components that can be used by component sets.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Component Set Element (Data)|compset}}&lt;br /&gt;
|Zero or more &amp;quot;compset&amp;quot; elements may appear as defined by the given link. This element defines various component sets that can be used to define things.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Entity Element (Data)|entity}}&lt;br /&gt;
|Zero or more &amp;quot;entity&amp;quot; elements may appear as defined by the given link. This element defines entities that can be used within the game system.&lt;br /&gt;
|-&lt;br /&gt;
|{{flalt|Sort Set Element (Data)|sortset}}&lt;br /&gt;
|Zero or more &amp;quot;sortset&amp;quot; elements may appear as defined by the given link. This element defines various sort sets that can be used by the game system.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Colen</name></author>
	</entry>
</feed>