• Please note: In an effort to ensure that all of our users feel welcome on our forums, we’ve updated our forum rules. You can review the updated rules here: http://forums.wolflair.com/showthread.php?t=5528.

    If a fellow Community member is not following the forum rules, please report the post by clicking the Report button (the red yield sign on the left) located on every post. This will notify the moderators directly. If you have any questions about these new rules, please contact support@wolflair.com.

    - The Lone Wolf Development Team

Question

OldDNDer

Active member
I would like to add a restriction to a new class which requires the player to be Human or part Human (Half-Elf for example). I recall there was a selection which allowed me to set a "Counts as" race. I cannot find that selection any longer. So, my two questions are:

1. If the Counts as race selection is gone how do we set it now?

2. How can I tell my new class to check that the race is indeed Human?
 
Also, I'm very confused as to why Hero Lab is showing the wrong number of spells for a 5th ED. Wizard. I'm using the core (5th ED. SRD) and am testing a level 3 Wizard. The 5th ED. PHB says that a level 3 Wizard with 13 INT should have 3 Cantrips, 4 First level spells, and 3 Second level spells. Yet, Hero Lab is only allowing me to pick 3 Cantrips and 3 spells. What am I missing here?

Edit: No, my mistake. I work a graveyard shift these past few weeks to cover for a coworker that had surgery. He's recovering nicely. Anyway, when I get home from work I'm sleepy. I'm not sure what was going through my mind when I typed the above.
 
Last edited:
1. If the Counts as race selection is gone how do we set it now?
The Counts as Races button still exists on the subraces tab at least, not that I've ever used them. If you couldn't touch the race, I think you could extend the tag Race.XXX where XXX is the ID of the race (rHuman, etc...) based on the behavior of that button, but....

2. How can I tell my new class to check that the race is indeed Human?

If you have the community pack installed, look at the SCAG (Sword Coast Adventurer's Guide) definition of bladesinger. There is a expr-req of:

#hasrace[rElf] + #hasrace[rHalfElf] <> 0

Which means it requires that a bladesinger can either be an elf or half-elf only.

In XGtE there's the Prodigy feat that requires you to be part human:

#hasrace[rHuman] + #hasrace[rHalfElf] + #hasrace[rHalfOrc] <> 0

These run as a an expr-reqs...
 
Beautiful, amazing! Thank you.

Next question is; the class uses the Wizard spells but I need to give it 2 more spells per level. The number of cantrips stays the same. The problem I am having now is getting those two extra spells per level added. So, for example at first level, a Wizard with no bonus from INT would have 1 first level spell. I need to increase that to 3 first level spells. I have tried a couple of methods to get that increase but cannot figure out what to do. Any help would be greatly appreciated.
 
Spellcasting gets tricky, I'm assuming you mean you want to up the number of spell slots available only.

For non-warlock casters you can manipulate the spell slots per day by using something like the following at Final/5000 (anything before final/10000, but has to happen after the class builds the spell tables in the Levels timing):

Code:
hero.childfound[SlotHold1].field[MaxAllow].value += 2

SlotHold1 holds 1st level spell slots, so you would have to repeat this for SlotHold2, SlotHold3, etc....

So you would have to write something like

Code:
if (herofield[tMaxCaster].value >= 17) then
   ~ IF caster level is high enough to cast 9th level spells give me 2 more 
   hero.childfound[SlotHold9].field[MaxAllow].value += 2
endif
if (herofield[tMaxCaster].value >= 15) then 
   ~ same for 8th level spells. 
   hero.childfound[SlotHold8].field[MaxAllow].value += 2
endif

etcetera, etcetera....
 
So, I plugged that in and filled it out for each level of spells; however, when I test it nothing happens. It still reports, with a 13 INT, on the "Wizard Spells" tab of the hero that I have "Memorized: 0/4" which is correct for a 3rd level Wizard. On the "White Robe Wizard Spells" tab it shows "Memorized: 0/2" for a 1st level White Robe Wizard however what I want is "Memorized: 0/4".

Edit: When I'm looking at the pick tags on the White Robe Wizard tab I see something about thingid.SpellSlots. Should SpellSlots be in the code somewhere?
 
Last edited:
So, I plugged that in and filled it out for each level of spells; however, when I test it nothing happens. It still reports, with a 13 INT, on the "Wizard Spells" tab of the hero that I have "Memorized: 0/4" which is correct for a 3rd level Wizard. On the "White Robe Wizard Spells" tab it shows "Memorized: 0/2" for a 1st level White Robe Wizard however what I want is "Memorized: 0/4".

Edit: When I'm looking at the pick tags on the White Robe Wizard tab I see something about thingid.SpellSlots. Should SpellSlots be in the code somewhere?

Well, I said spellcasting was tricky, I thought you were wanting to change the spells slots available, which is what most folks want. If you look at the spells tab you'll see that the number of 1st level slots per day will be 2 above what you expect, etc... (probably 6 instead of 4).

If you're wanting to change the number of spells memorized, it's a different table/field.

You need to get into the class helper object and touch one of the fields:

Code:
hero.childfound[cHelpWiz].field[cMaxSpMem].value += 2

Timing is really critical on this since the calculation happens behind the scenes at post-attributes 100 - so you can run it at post-attributes 50. You could also scan the timing report and figure out how to put it before the <task name="Field cMaxSpMem: Calculate (Max Memorize Allowed)"> </task> script that runs and prioritize it to run right before it. If you made a copy of wizard and this is not a new subclass you'll want to use your cHelpXXX that was generated when you copied wizard obviously.

If you're doing something in an ability that requires you to select the spells from a configurable or dropdown, you can always mark the extra spells as "free" with the Helper.Free and Helper.Memorized tags, like the clerics do for their bonus domain spells.
 
Yeap, that did the trick. Thank you again. This stuff is complex. Now I wish that I had taken programming while working on my degree. Here I'm pushing 50 and this stuff is kicking my tail.
 
Now, what if, at level 1 only, instead of giving them two extra spells memorized I wanted to make sure they had no spells? At level 2 then they would pick up the:

Code:
hero.childfound[cHelpWiz].field[cMaxSpMem].value += 2

Would that be possible?
 
I'm not sure you won't get some weird validation errors. Some of the behaviors of spellcasting are baked in behind code we can't see. For instance, the wizard class has logic that want you to learn 6x 1st level spells at 1st level, your script takes away the ability to cast them though. I would have to look at it to see if we could drop the spellbook values - I haven't messed with them much.

You can certainly get your level with the #levelcount[Wizard] or #totallevelcount[] macros or even find the maximum caster level and then write an if statement that says if your level is less than 2, set that value to 0 or subtract the number they would normally get to zero the number out.

So a hack like:

if (#levelcount[Wizard] < 2) then
~ if we're 1st level, subtract the number we would normally get to memorize
hero.childfound[cHelpWiz].field[cMaxSpMem].value -= maximum(1, 1 + #attrmod[aINT])
~ this code zeroes out the num of memorized requirement
else
~ else add 2
hero.childfound[cHelpWiz].field[cMaxSpMem].value += 2
endif
 
I follow what you are saying. I gave it some more thought last night and have another question. Instead of doing the prior example, giving them no spells memorized at first level, would it be possible to just jump them forward in spell level? For example, I have just multi-classed into White Robe Wizard but instead of getting first level spells memorized (base of 2 from PHB p.113) would it be possible to treat my caster level as a 3rd level White Robe Wizard?

In other words, I would like to jump the spell casting portion of the Hero up by +1 (from an effective level 1 to level 2) even though they are a Level 1 White Robe Wizard. Can that be done?
 
Since you have to be a Wizard to cross into White Robe Wizard isn't there a way to just count the total character levels and apply that to the effective spellcasting level? :confused:
 
I'm not sure that prestige class style logic would be easy to implement. The mechanisms just aren't part of the SRD, from which all of the programming springs. There are some posts about gestalting - especially over in the Pathfinder group that might help more than I can at this point.

A lot of prestige classing is easy to implement by redesigning it into a subclass, which is a lot easier than trying to cross-check for total levels.
 
I'm not building it as a Prestige class. Instead, I'm building it as a class of its own that can be multi-classed into. Much like you could with Fighter and Wizard, or Ranger and Cleric. If there isn't really a way to do it then no worries. It would have been nice to pull off. I was looking at the examples and tutorials and I can see how to count total levels of a hero but I cannot figure out how to adjust a hero's total spellcasting level.

I see you're from Louisville? I have a friend who lives up there now. We met back in the Army at Fort Bragg. We used to play D&D back then. It was a blast. I still keep in touch with Dave. We've been friends for 26 years.
 
Okay, so my next question is how can I add an initiative bonus at certain levels? For example, if I want a +1 bonus at level 2, then +2 at level 4 how would go about that? This is for a Class Special. Here is what I have so far:

Code:
if (herofield[????].value >= 2) then
hero.child[Initiative].field[BonSacred].value = maximum(hero.child[Initiative].field[BonSacred].value, 1)
endif
if (herofield[????].value >= 4) then
hero.child[Initiative].field[BonSacred].value = maximum(hero.child[Initiative].field[BonSacred].value, 2)
endif

The problem is where I have the ????. I cannot seem to get the code to recognize the Class. I keep getting the error "Non-existent field 'ccDLCrwnKn' used by script. I have tried Knight of the Crown, Knight Of The Crown, and cHelpKCR but keep getting the same result.
 
Is this wrong, as in will it cause a problem at some point?

Code:
if (#totallevelcount[] >= 2) then
hero.child[Initiative].field[BonSacred].value = maximum(hero.child[Initiative].field[BonSacred].value, 1)
endif
if (#totallevelcount[] >= 4) then
hero.child[Initiative].field[BonSacred].value = maximum(hero.child[Initiative].field[BonSacred].value, 2)
endif
if (#totallevelcount[] >= 7) then
hero.child[Initiative].field[BonSacred].value = maximum(hero.child[Initiative].field[BonSacred].value, 3)
endif

I ask because it seems to work.
 
I see you're from Louisville? I have a friend who lives up there now. We met back in the Army at Fort Bragg. We used to play D&D back then. It was a blast. I still keep in touch with Dave. We've been friends for 26 years.

I have a Dave that shows up sometimes at my table but he's never been in the military, so I'm 100% sure not the same Dave. Louisville's gaming community is pretty robust, I once worked with the RPGA during the 3.0/3.5 launch and was surprised at how many gaming groups are spread through the area.

Is this wrong, as in will it cause a problem at some point?
It's a quirky way to do it, The only issue I see is that if you create something else (like a sword or amulet) that touches BonSacred, then the bonuses will not stack, you'll just take the maximum bonus.

An alternate way would be to nest or tier your if/thens like this:

if (#totallevelcount[] >= 7) then
~ greater than 7 levels, add 3 to init
hero.child[Initiative].field[BonSacred].value += 3
elseif (#totallevelcount[] >= 4) then
~ else we are less than 7, if we are more than 4 add 2
hero.child[Initiative].field[BonSacred].value += 2
elseif (#totallevelcount[] >= 2) then
~ else we are less than 4, if we are more than 2 add 1
hero.child[Initiative].field[BonSacred].value += 1
endif

I added the comments to show you how the else logic is working since it can be confusing.
 
I just realized a mistake I made. I have it counting total levels. I just want it to count levels as a Crown Knight. I changed it from (#totallevelcount[]) to (levelcount[cDLCrwnKn]).

What a pity you aren't the same Dave. I'm glad I didn't send that Facebook message asking why you never told me you used Hero Lab. :D
 
Last edited:
Okay, newest question. Clerics have access to Custom Ability Name: Divine Domain. I would like my custom class to access that list too. The problem is that I do not see the list. Is that a list I will need to create from scratch or is it in the Custom Ability section and I can use the New (Copy) button? If it is in there what is it called? I've tried searching but have not had luck.
 
Back
Top