Updating Homebrew Sets
Introduction
This section is for updating older homebrew LST files to use the current standards. This is a work in progress. Any questions ask on the PCGen Yahoo Group.
PrettyLST
- First off we'll need PrettyLST for earlier versions of PCGen
- Next, to run PrettyLST you'll need ActivePerl.
- You will want to run PrettyLST with the Conversion Flag turned on to bring your sets up to 5.12 standards. Note this is not a perfect conversion, you will need to check your materials against any errors PrettyLST outputs.
It's a good idea to be methodical over this, and convert a single set at a time, otherwise the number of errors and warnings you'll have to get through may well become overwhelming.
Keep track of what you have converted.
you'll want to run PrettyLst with a command line such as:
perl prettylst.pl -i=d:\pcgen_convert\input -o=d:\pcgen_convert\intermediate -gamemode=35e -systempath D:\utils\PCGen\PCGen5120\system -e=error.txt -convert pcgen512 -nojep
That '-convert pcgen512' is the flag to actually perform the conversion (otherwise its just reformatting the field order and indentation).
-i specifies the directory your old data set is in currently (note that here I've setup specific directories completely outside of my 'normal' dataset directory, so I don't risk messing up any 'live' sets.
-o indicates the output directory (I use an 'intermediate' directory, which will be used as the input for the next script (Baraks) below).
-gamemode=35e specifies the gamemode we're converting, you can leave this off, and prettylst will determine what you need, though I find migrating CMP datasets to 35e means I can make use of many other PCGen enhancements and get a better experience.
-systempath is a path to the installed PCGen 5.12.0, I'm not totally sure this is needed actually, but it cant hurt :-)
-e defines where the error output is going to be written.
-nojep prevents (what appears to be erroneous) warnings about some functions.
I suggest you put the above into a batch file (RunConvert1.bat) to make it easier to run under windows.
Run the batch file, read the error messages, make any updates to the sources in the *input* directory, and re-run the batch file, repeat until either A) you have no more errors, or B) (more likely) you get fed up trying to fix them :-) There are numerous warnings you can (probably) ignore (further options to prettylst reduce warning levels), and many that are just plain difficult to resolve at this stage - further steps below may fix them, or it may be cross references into other sources that you havent converted yet...
NOTE - if you do migrate CMP to RSRD (I personally recommend this, opinions may differ) many things (races, classes, spells, equipment...) are easier if they .MOD an appropriate (standard PCGen) 3.5 (or 3e!) dataset.
5.12.x-->5.14.x
For 5.12 to 5.14 you'll want to use Barak's Script
Again you'll need perl, see above. You may also need to jon the PCGenLiSTFileHelp group to access the file. I put the script with PrettyLST.
Following the methodology above to get datasets up to 5.12.0, with a dataset in d:\pcgen_convert\intermediate, run Baraks script as:
perl convert_514.pl -I=d:\pcgen_convert\intermediate -O=d:\pcgen_convert\output
Check the 'convert_514_log.txt' file for errors, edit the files in the 'intermediate'* directory to fix, and re-run Baraks script again.
- (or edit in the original 'input' directory, and run both the PrettyLst conversion and then Baraks script again - this ensures that you only edit one set of files and don't risk overwriting your edited intermediate files)
5.14.x-->5.16.x
5.16.x and beyond has a Converter included with PCGen. That Version of PCGen will update any files from the previous version. So the 5.16.x converter will bring 5.14.x files forward to 5.16.x standards.
Use the 5.16 Converter to bring 5.14 sets forward.
NOTE: The Converter will bring the previous cycle forward, do not use 6.0 to bring 5.14 forward, use 5.16 to do that.
When you finally load the sources into PCGen - Note that the error reporting improves with each version, so while you may see more errors with the newer version, chances are that those errors were there all along, just not being made obvious. Initially, you most likely want to turn off preference options for 'deprecation' and 'show detailed error report' and fix anything else you see at load time (particularly any NPE errors - they are serious and you need to restart PCGen!)
Once those (serious) errors are fixed, then at your leisure turn those options back on and fix the remaining (less serious) issues manually.
See here for more information.
5.16.x-->6.0.x
Use the 6.0 PCGen Converter
Massive Changes that WILL affect Homebrew Users
Starting 5.16.4 and 5.17.4
All the Armor BONUS TYPES got a bit of a Change. This WILL affect any homebrew sets that use any PCGen released core sets.
The Following needs to be done to follow the standards:
- Races that grant Natural Armor need to use this format:
BONUS:COMBAT|AC|x|TYPE=NaturalArmor this replaces the old format of BONUS:COMBAT|AC|x|TYPE=NaturalArmor.REPLACE
- Anything that improves Natural Armor not by enhancement needs to use this format:
BONUS:COMBAT|AC|x|TYPE=NaturalArmor.STACK this replaces the old format of BONUS:COMBAT|AC|x|TYPE=NaturalArmor.REPLACE BONUS:COMBAT|AC|x|TYPE=NaturalArmorEnhancement should be used for any Natural Armor Enhancement
The same applies for Armor.REPLACE and Shield.REPLACE; these both become Armor and Shield respectively. If there is an enhancement you wish to and, just append 'Enhancement' to the Bonus type 'ArmorEnhancement', 'ShieldEnhancement'.
- For Armor and Shield:
BONUS:COMBAT|AC|x|TYPE=ArmorEnhancement This replaces BONUS:COMBAT|AC|x|TYPE=Armor.REPLACE
BONUS:COMBAT|AC|x|TYPE:ShieldEnhancement This replaces BONUS:COMBAT|AC|x|TYPE=Shield.REPLACE
- 3rd Edition has a slight variation. We don't use 'Shield' or 'ShieldEnhancement' instead we use:
ArmorShield For Armor Bonus derived from the Shield ArmorShieldEnhancement For the Armor Bonus granted from the Shield Enhancement
This was done to make the stacking rules work more uniformly, and avoid overlap stacking where it shouldn't occur.