Purpose: This script is designed to import Pathfinder characters created in Hero Labs (<a href="http://www.wolflair.com" rel="nofollow">www.wolflair.com</a>) into Roll20. This is accomplished by parsing Hero Labs custom xml output and using this to create journal entries in Roll20. This script is designed to work with Sam's Pathfinder v2.0 style of sheet only (Roll20 Default Pathfinder Sheet) Basic Instructions: 1) Open the Hero Lab portfolio that you wish to import and from the File pull down menu select "Save Custom Output". 2) In the next menu, choose "Generate XML File" making sure to output only the current hero. 3) Copy the contents of the xml file to your clipboard using a standard text editor like notepad (Do not use Wordpad!!). 4) In Roll20, place a token down that represents this hero, then edit the token and paste the contents of the xml file to the GMNotes section of the token. 5) As there are several required inputs (due to limitations in the xml), I suggest creating a Roll20 macro using the following syntax: !import ?{Melee Stat?|str} ?{Ranged Stat?|dex} ?{CMB Stat?|str} ?{Caster Class 0 Stat?|none} ?{Caster Class 1 Stat?|none} This will pass the 5 required arguments to the script: Melee Stat = The ability score responsible for Melee attacks Ranged Stat = The ability score responsible for Ranged attacks CMB Stat = The ability score responsible for determining Combat Maneuvers. Caster Class 0 Stat = The ability score responsible for determining bonus spells for this class. Caster Class 1 Stat = The ability score responsible for determining bonus spells for this class. Limitations: Please be aware that the Hero Lab xml output does not directly include all data required to fill out the character sheet directly, however with that said, I tried to make sure to cover as much information as possible. There are simply some things that were difficult/impossible to import into Roll20 with 100% accuracy, so please make sure to check the accuracy of your sheet after import. The list of limitations may seem long, but in my experience I didn't consider any of these game breaking compared to the time savings that the script provided: - Cannot break down HP, BAB, and Base Saves by class in the class information section, so all information added to class-0 line. - Cannot determine any Favorite Class bonuses because they are not reported in the xml. - Cannot handle skill replacement rolls such as the Bard's Versatile Performance, these skills should be updated manually. - Many bonuses, including but not limited to traits, magic items, or feats are not specified in the xml, therefore all bonuses are entered as misc bonuses. - Cannot determine accurate HP formula, if you play a class or archetype that does not use CON for HP you will need to manually modify HP and/or the formula. - Temporary Hit Points (such as via spell adjustments like false life) are calculated based on Con. - Cannot populate the Next Level XP field as this information is not present in the xml file. - Cannot set the Armor Type (Light, Medium, Heavy) as this information is not present in the xml file. - Currently the Roll20 Sheet does not have a space for the Burrow Speed attribute, therefore I am saving it as a misc speed. - Currently the Roll20 Sheet does not have a space for the Fly maneuverability category. - Many "Special Abilities" do not have a proper classification, doing a random sample, it seemed that the majority were Racial Traits, therefore if you are missing a class ability, you might want to check the Racial Traits area to see if it was copied there. This is a limitation of the xml output. - There was no simple way to calculate ability uses or wand charges, so while this information is often in the name of the ability/item, the appropriate fields on the sheet will need to be updated manually. - There is no accurate way to calculate Class Skills per level as this information is not in the xml, therefore it should be manually updated. - Cannot determine the source of miscellaneous spells that exceed the amount of spells known. - Spells Known is populated on spontaneous casters purely based on the spells in their known list, this may not accurately represent the rulebook chart in cases where bonus spells are added for various reasons. - Cleric Domain Spells, Wizard School Specialization Spells, and other areas where Bonus Spells are gained (favored class bonuses) are not reported the xml, therefore you should double check to make sure that spells per day is set properly. Often Domain spells and Specialization spells need to be added manually. - Weapons, there is no way to properly determine the damage bonus of a weapon, the information needed is not in the xml. So, I import the weapons with a note to check the accuracy of the weapon. - Weapons, the only way to identify "Masterwork" and enhancement bonus (i.e. +1) is if the weapons start with these field, therefore weapons made from special materials that are automatically masterwork may not be identified, as well as weapon enhancement bonuses that don't precede the weapon. - Reminder, do not use Wordpad for copying and pasting the xml files, it causes strange characters throughout the xml. Not implemented in this version: - Homeland field - Occupation field - Hero Points - Prestige/Fame Contributors (Thank you!): HoneyBadger, whose xml parsing code from the D&D4E monster importer is the basis upon which this script is built. Sam, whose awesome Pathfinder Sheet really makes this script possible, as well as helping me when my late night math was failing me. Aaron, Brian, BoomerET and several others whose scripts and advice helped a true novice fix and begin to understand coding Zepth, Kuriin, and Pat K. (great friend of mine) for help testing this script and fixing all of the immediate bugs. The script can be found here: <a href="https://github.com/beeke01/PathfinderHLImport/blob" rel="nofollow">https://github.com/beeke01/PathfinderHLImport/blob</a>...