• 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

Need Special Ability Help: v3.5 Scout Conversion to PFRPG

Paris.Crenshaw

Well-known member
Hi, All.

I've enjoyed working with Hero Lab's Pathfinder content and I'm now ready to start entering my converted v3.5 classes.

My first attempt was the Scout class from Complete Adventurer.

Amazingly, I got the Skirmish ability to work, but I'm having difficulty with the Scout's Battle Fortitude ability. I'd appreciate some assistance in getting the script correct. Here's the (converted) ability description:

Battle Fortitude (Ex): At 2nd level, a scout gains a +1 competence bonus on Fortitude saves and initiative checks. This bonus increases to +2 at 11th level and +3 at 20th level. A scout loses this bonus when wearing medium or heavy armor or when carrying a medium or heavy load.

I tried basing the ability on other abilities that modify values, but it isn't working.

Here's the script I'm using:
field[abValue].value += field[xIndex].value
hero.child[svFort].field[Bonus].value += field[abValue].value
hero.child[Initiative].field[Bonus].value += field[abValue].value

field[livename].text = field[thingname].text & "Battle Fortitude +" & field[abValue].value
field[abSumm].text = "+" & field[abValue].value & "competence bonus to Fort saves and Initiative checks."

I appreciate any and all help.

Cheers!
 
Last edited:
Your pretty close their actually, but their are two different values that have to be used. One is the xIndex and the other is the xCount value. You should use the xIndex for displaying the info in the Class List section and use xCount for the actual abValue and only when that class ability is shown. Which happens when they have enough class levels.

Below is some code I have running on a class. For timing I use Render 1,000.

Hope that helps.

Code:
~Set the list name
field[listname].text = field[thingname].text & "(+" & field[xIndex].value  & ")"

      ~ If we're not shown, just get out now
      doneif (tagis[Helper.ShowSpec] = 0)
field[abValue].value += field[xCount].value
field[livename].text = field[thingname].text & "(+" & field[abValue].value  & ")"
 
Pairs, please don't keep this dataset all to yourself when you've completed it. My Evol WifeFIEND said she is willing to join our Kingmaker game starting in a couple weeks. She only plays archers. But as we're going to be playing two characters (one off adventuring the other running a kingdom), I want one to be the scout and one to be either a rogue or fighter - but as HL is awesome for PC management (and she only plays, she doesn't make characters) I want as much help as possible. Making this available on either Cheese Weasel or Shadow's d20PFSRD for HeroLab site would be totally beneficial to me. Please consider this when you've created the class.
Theocrat Issak
 
Hi, folks!

Sorry it's taken me so long to respond. I've been so busy with work, I haven't had time to play around with this.

I'll give this a try tonight and let you know how it works out.

Once I get it working, I'll be happy to share, Theocrat!
 
I finally got around to trying a few things out, but unfortunately, I'm still missing something.

At this point, I'm just trying to get the ability to show up in the "Scout" Class List with the right bonuses. The ability is granted at 2nd, 11th, and 20th levels with a +1 increase each time. But when I add levels of the class, it shows up as "Battle Fortitude +0" each time.

I'm not sure whether there's a problem with the code or with a setting that I should have selected when linking the class with the special ability.
 
On the class tab, there's a list of special abilities that the class gets.

On that list, do you see Battle Fortitude listed 3 times, at the appropriate levels?

Does each level list (+1), (+2), and (+3)?
 
No. I've added the ability to the class in the editor. When I apply levels of the class to a character, I see the ability in the list, but each time, it shows up as +0 at each of the 3 levels. I know there's something missing about how to make Hero Lab count the number of times a character gets an ability, but I can't figure out what it is.
 
What I did was copy the fighter's bravery ability. I had to do some minor changes to the eval script so that the text came out right. Here is the one I did for the Knight's Rallying Presence:

Phase: Render Priority: 1000
field[listname].text = "Rallying Presence +" & field[xIndex].value

~ If we're not shown, just get out now
doneif (tagis[Helper.ShowSpec] = 0)

field[abValue].value += field[xCount].value
field[abSumm].text = "+" & field[abValue].value & " Bonus to saves against fear"
field[livename].text = "Rallying Presence +" & field[abValue].value
 
Okay...so I got this to work, but I don't know how. Here's what I originally had for the script.

field[abValue].value += field[xCount].value
field[livename].text = "Battle Fortitude +" & field[abValue].value
field[abSumm].text = "+" & field[abValue].value & " competence bonus to Fort saves and Initiative checks."
field[listname].text = "Battle Fortitude +" & field[xIndex].value

I made a copy of Sneak Attack and used that script as the base, and that ability now works. Here's that script.

field[abValue].value += field[xCount].value
field[livename].text = "Battle Fortitude +" & field[abValue].value
field[abSumm].text = "+" & field[abValue].value & " competence bonus to Fort saves and Initiative checks."
field[listname].text = "Battle Fortitude +" & field[xIndex].value

As you can see the scripts are identical. The only difference is that my original ability had a phase of "First", while the one based on Sneak Attack has a phase of "Final Phase". I have no idea why that would make a difference, since I don't know what phase means in the context of the scripts.

Thoughts?
 
Thanks, blzbob. I can see now that the problem is in the Phase and Priority properties. Where do I go to learn more about what those mean and how to use them properly?

EDIT: Now I'm having trouble getting the bonuses to add to Initiative and Fortitude Saves. Are the hero.child statements in my first post accurate? What do I need to do with the bootstraps?

Sorry to be such a dunce. Still trying to learn the language associated with this software. :D
 
Last edited:
I'm still learning is as I go. I just ask questions for now. There is a site that has all these answers but I get confused when I read it. What I do right now is just find something that matches what I want to do and just mimic it. If I can't find anything, then I come on here and ask.
 
All scripts in Hero Lab are run in a specific order. That order is set by the Phase and Priority.

So, we start with the First phase - there, we set up things like the size of the hero, and do a quick count of how many levels of each class there are (along with noting the race, templates, etc. in a way that's easy for other things to look up).

Then comes the levels phase (with pre-levels before it and post-levels after it) - that's when each class figures out what level it's at, and tells each of its abilities what level it was selected at, how many levels there are of the parent class, etc.

The same sort of thing happens in the attributes phase, this time for attributes, and everything that needs to know an attribute value.

Then the Final phase, when things like the attack value and the armor class are calculated - they need to know how many levels you have and what your attribute values are, so those need to be calculated after the levels and attributes phases.

Everything's finished off with the Render phase - how things look when they're displayed to the user.

Within each phase, the scripts are placed in order by priority, from lowest to highest.

If you're putting a script on a class, you'll have to use Post-Levels / 500 or later - the class special doesn't know how many levels of its parent class have been taken until shortly before then. By default, I stick Class Specials at Post-Levels / 10000.
 
Paris any timeframe for when you'll have this converted to PF ruleset? I'm making a Ranger Archer for the evol WifeFIEND, but really think the scout might make a viable option.
 
Hey, Theocrat.

Sorry this is taking so long. I don't have large chunks of time to spend on this and I'm still having trouble.

I've got the ability showing properly in the class table, but I can't get it to actually add the value to the Initiative and Fort Save modifiers.

I'm still working on it and will let you know when I'm done.

Here're the lines I'm using in the script.

hero.child[svFort].field[Bonus].value += field[abValue].value
hero.child[Initiative].field[Bonus].value += field[abValue].value
Note: field[abValue].value += field[xCount].value
 
The Render phase is too late to make any changes to saves or initiative. I'd recommend moving your script to Post-Levels/10000 (if you need to look up an attribute value, for example Uses = 3 + CHA mod, use Post-Attributes/10000 instead).
 
Thanks, Mathias. That got my numbers to show up.

Unfortunately, now they're showing up incorrectly. I've only added this ability to the scout class for levels 2, 11, and 20. But when I add the 1st level of scout, the Initiative and Fort Save bonuses increase by +1. After the first ability is added, it seems to work correctly for every other one, but for some reason, it's showing up at first level, even though I've added it to the class starting at 2nd level.

I'm having a very tough time getting the hang of this. ;)
 
Last edited:
Take another look at the script ShadowChemosh gave you. It included the following lines:

Code:
      ~ If we're not shown, just get out now
      doneif (tagis[Helper.ShowSpec] = 0)

You'll need to put that into your script, after the part that generates the listname, but before everything else.

Every class special is active, even if they show grey-ed out. Therefore, you need to stop the script from running if this is on a class special you haven't gained yet.

Since you also want to add the bonuses from only one copy, not the level 2, 11 and 20 copies (which would mean that the bonus was tripled by the time you got to 20th level), we'll add a little more:

Code:
~ If we're not shown, just get out now
doneif (tagis[Helper.ShowSpec] = 0)
 
~ If we're not the first copy, just get out now
doneif (tagis[Helper.FirstCopy] = 0)


If you haven't done so already, I'd recommend reading through the tutorials (help menu within the editor), especially #7. That's where I've tried to cover this sort of thing
 
Mathias, you're awesome. I completely missed the importance of that line.

Here's the final script. The goal was to increase the bonus from +1 at 2nd level, to +2 at 11th, and +3 at 20th. It works perfectly! :D

Phase: Post-Levels (User), Priority: 10000, Index: 1
~ If we're not shown, just get out now
doneif (tagis[Helper.ShowSpec] = 0)

field[abValue].value += field[xIndex].value
field[livename].text = "Battle Fortitude +" & field[abValue].value
field[listname].text = "Battle Fortitude +" & field[xIndex].value

#applybonus[BonComp,hero.childfound[svFort], field[xCount].value]
#applybonus[BonComp, hero.childfound[Initiative], field[xCount].value]

As for the tutorials, I guess I got ahead of myself. I made it through #3 and got impatient. ;) I'll go back through and give the rest of them a try, now. Thanks, again!

I'm putting the finishing touches on the class, now. I'll let you know when I'm done!
 
Last edited:
Some minor revisions:

Code:
field[listname].text = "Battle Fortitude +" & field[xIndex].value
 
~ If we're not shown, just get out now
doneif (tagis[Helper.ShowSpec] = 0)
 
~ If we're not the first copy, just get out now
doneif (tagis[Helper.FirstCopy] = 0)
 
field[abValue].value += field[xIndex].value
field[livename].text = "Battle Fortitude +" & field[abValue].value 
#applybonus[BonComp,hero.childfound[svFort], field[xCount].value]
#applybonus[BonComp, hero.childfound[Initiative], field[xCount].value]

I moved the listname line before the Helper.ShowSpec section, becuase you want to generate a listname all the time, even if you haven't reached that level. (the listname is what's shown on the class tab, so this way, the first copy displays +1, the second +2, etc.)

I added the FirstCopy section so that when you're 20th level, the script only runs once, not 3 times. Because you're using competence bonuses, and they don't stack, you're not seeing it, but if you used a non-stacking bonus, you'd see it applied three times.
 
Back
Top