Using the Dataset 3.5 SRD for Players, PCGen 18.104.22.168 and PCGen 22.214.171.124
I created a Bard using 126.96.36.199 who has the feat Skill Focus: Perform(Oratory). In the 188.8.131.52 version, it calculated properly and was added to both the totals in the Skills tab and the various character sheets. After installing 184.108.40.206 I noticed that the Skill Focus feat, while still listed as on my bard, was not being added to any calculation on any tab or character sheet.
To test, I created a number of other characters in 220.127.116.11 with Skill Focus: Perform with various sub type (sing, act, etc.) and ranks in the given skill. All displayed properly in 18.104.22.168, none displayed properly in 22.214.171.124.
To test that this was not just a version mismatch error (conversion from 126.96.36.199 to 188.8.131.52), I also created a number of characters directly in 184.108.40.206 with Skill Focus: (Perform (sub-type)) and ranks in the given Perform skill. None of these properly displayed the Skill Focus bonus in the "Misc. Modifier" column of either the Skills tab or any of the character sheets. The Feat does display correctly on the Feats tab and the feat description on the character sheets. For reference, these were all human, male, level 1, using classes Bard, Cleric and Monk.
It seems that something got changed or broken in the code or data somewhere between 220.127.116.11 and 18.104.22.168 regarding Skill Focus and Perform.
I have attached the specific bard character .pcg file that I observed this issue in to begin with.
In examining the attached character using the "troubleshooting.htm" character sheet, in 22.214.171.124 I find this line:
Perform (Oratory) +10 = +4[RANK] +3[Skill Focus] +3[STAT]
in 126.96.36.199 I find this line:
Perform (Oratory) +7 = +4[RANK] +3[STAT]
Windows 7 professional, jre7
As best I can tell, this is a data design issue in PCGen 6.2. The data gets exactly what it asks for... which happens to not be correct.
Perform (Oratory) is a Display-only skill This is where the skill focus is applied
Perform ~ Oratory is an export-only skill This is what is displayed to the user.
Nothing in the data appears to move bonuses from one item to the other... and the Skill Focus bonus is on the displayed item not the exported item.
Huh, I'm trying to figure out why I added that. Now the good question, why isn't the Skill Focus coming across?
BONUS:SKILL|Perform ~ Sing|SKILL.Perform (Sing).MISC <-- shouldn't this be the working code to take the skill focus bonus and apply it to the skill?
Just a thought: I don't recognize the SKILL.Perform (Sing).MISC part.
I ran into the same problem with Craft skills, and replaced
SKILL.Craft (Blacksmithing).MISC with skillinfo("MISC", "Craft (Blacksmithing)")
that seemed to fix the problem.
The likely issue is that the space is fooling the parser into treating it as two halves "SKILL.Perform" and "(Sing).MISC". The resolution you have already used to enclose this in a var("") would have been my recommended work around, or in fact using the skillinfo function.
I don't propose any further action on this issue.
I'm avoiding skillinfo as the result of skillinfo vs. var skill.xxx.misc are different. I need the current bonus, not the bonus when the skill has any ranks.
SKILLINFO will only produce a bonus if a USEUNTRAINED:NO skill has a RANK. This defeats the purpose of this workaround (As the idea is to display the skill if the bonus is different, not if the rank exists) This is a method I'm using to allow display of skills as untrained. Anyways, I double checked and the fix is in place. Thanks again!