Saturday, April 2, 2022

Re: [pcgen] Coding Dual Class Code issues. #pathfinder

They'll also ask about the error in the logs.

I don't recall this hitting the discord, but I can answer basic questions if they've been missed.

Let's start with some basics: "Dual Class" is an outdated term from 2nd edition D&D, it was exclusive to Humans and indicated they had progressed in a single class and then opted to retire from that class and started into another class (They didn't progress at the same time, and even worse, you lost access to the abilities you had until you caught up!). Demihumans were allowed to 'multiclass' and therefore took two or three classes (But they had severe level limits, except dwarves and the thief levels). I think what you're mashing together is a weird "gestalt" but being overly additive (rogue grants 8 skill points, sorcerer 2 skill points, but your class is adding those together for 10, which isn't how gestalt works either, but hey your homebrew and you can make it do whatever you'd like)...


Okay, to address the very obvious issues:

TYPE:Dual Class  <-- That's a no. Stick with existing nomenclature unless you explicitly understand why things exist.

Valid Class Type choices for Pathfinder are: PC, NPC, MONSTER, and COMPANION are the valid choices. Adding is fine, but removing is not. You'll mess up inner calculations that PCGen does by omitting such things.

Case in point here's the code you're omitting:

CLASSTYPE:PC        CRFORMULA:CL    ISMONSTER:NO    XPPENALTY:NO    CRMOD:-1    CRMODPRIORITY:1
CLASSTYPE:NPC        CRFORMULA:CL    ISMONSTER:NO    XPPENALTY:NO    CRMOD:-2    CRMODPRIORITY:2
CLASSTYPE:Monster        CRFORMULA:0        ISMONSTER:YES    XPPENALTY:NO
CLASSTYPE:Companion    CRFORMULA:NONE    ISMONSTER:YES    XPPENALTY:NO

See, don't alter things until you understand their reason for existing, it causes ALL sorts of debugging headaches, trust me!

DEFINE:RogueLVL|0 is all great and dandy, but where is the DEFINE:SorcererLVL|0 also the same for incrementing the value as they level up with a BONUS:VAR|SorcererLVL|CL  ?

Though, I'm keen to use the newer classlevel() instead of CL, but that's a matter of preference I suppose.

BONUS:CASTERLEVEL|Sorcerer|Caster_Level_BL_Stripped_Sorcerer <-- equals NULL, and is silliness... I was trying to be clever, but the code was mangled and faulty. However, two big issues, you have an undefined var (hence the NULL comment, so the casterlevel will always show 1 on the output sheet if it shows anything numerical), and two, unless you'll take sorcerer as a separate class, this tag is completely and utterly pointless)

The correct usage would be 'BONUS:CASTERLEVEL|Rogue/Sorcerer|CL' since the class name is Rogue/Sorcerer, and not Sorcerer. Next, assuming you actually want to see spells, you'll need 'SPELLLIST:1|Sorcerer' remember, you're not a 'sorcerer', you've made a brand new class called Rogue/Sorcerer. Since that's the case, none of the spells have CLASSES:Rogue/Sorcerer=x in them, so the fastest method is to use that tag.  Remember, you don't have "sorcerer" or "rogue" classes, you're faking it by granting the same things they would get (marginally), but Archetypes won't work (They are keyed to specific classes and you're not exactly set up to pull anything in), and everything keyed off of rogues and sorcerers are likely to fail. (For example, a magic item looking for a sorcerer would not treat your rogue/sorcerer as a sorcerer, bear this in mind). Just to help drive this point home. I can call this class 'Murder Hobo' and have the exact same results. The class name itself grants nothing, it's just a name or unique identifier of what the class does or is for.  In fact, you could display Rogue/Sorcerer and then KEY the class to Murder Hobo! I have the clear distinction the name is fooling you into a false sense of granting, which is never the case. Hence, the DEFINEs from both classes need to be added and bonused similarly, and then you'll have to explicitly add anything you desire to the class. Whether that's spells, abilities, feats, etc. Lucky for you, most of the abilities are self-contained and those reliant on class levels were given the 'ClassNamelvl' variables.

Anyways, clean up the basics, rerun the class and see where that lands you. An error log points us in a direction to address the errors. (and yes, the volunteers all hang out on discord, it's far easier to monitor from our smart devices ;) )

Cheers,



On 3/14/2022 2:06 PM, John Conner via groups.io wrote:
Sorry thought I put that in the original message.  I'm currently running PCGen v6.08.00 RC8 and I'm working with Pathfinder 1e.


No comments:

Post a Comment