• 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

Adding new character resources

I'm trying to figure out how to add a new character resource called "Influence". I want each class to grant a given number of Influence Points per level like Skill Points. They would be calculated like 2+Cha Modifier Skill Points per Level. Ideally I would like Hero Lab to calculate them for each character, and then display them somewhere in a field. Any help I could get on how to do this would be greatly appreciated.
 
I dont think this can be done with the existing game system or the editor. You would need to use the Authoring Kit and create a new game system with the new attribute.
 
I haven't tried his but I'll offer it as a suggestion.

Maybe creating a skill called influence and adding it as a class skill for all classes would work. The mechanism is already in place to calculate the modifiers per level. At each level advancement just add the 2 + Cha bonus via a script based on level!

Hope that helps.
 
I haven't tried his but I'll offer it as a suggestion.

Maybe creating a skill called influence and adding it as a class skill for all classes would work. The mechanism is already in place to calculate the modifiers per level. At each level advancement just add the 2 + Cha bonus via a script based on level!

Hope that helps.

That might work. My only concern is the effect it would have on the whole skill point system. Do you think I could then just add class features that would add to the skill, without investing any skill points in it? That might be the easiest solution. You just wouldn't be able to track Influence Point expenditures separately.

I was thinking of trying to add it as a class feature, then just making duplicates of each class with the class feature added. What I can't figure out is how to get HL to add up the points, calculate them based on Cha, and display them in a field. Then, ideally I would like the ability to add fields, such as "Influence: King of XYX" "+15", and have the program subtract the +15 from their total pool of Influence Points.
 
How does your overall mechanic work? What do you need it to do? Are they gained and used in-play? Or are they gained and lost when you level up?

Can you see anything that already exists in the program that works something like this? If not, have you seen anything in the program that works similarly?
 
Take a look at the "user" file created for concentration checks. I believe that functions similarly to what you are looking for.
 
Maybe creating a free wondrous item called Influence with a custom text box, ie "Influence: King of XYX" "+15" that uses charges, (in this case 15 charges) would be a better way of tracking the resources, similar to a potion.

Each time a player gains Influence points add the items equal to the 2 + Cha bonus to the players inventory so the items stack. They could even add individual influence items as play progresses seperately via the inventory screen.

On the in play tab it will show up as charges which can be applied or added at will by the player.

I'd even try and script the item to add itself to gear automatically per level so the player didn't have to remember either!
 
Last edited:
bodrin - that's better handled with a mechanic bootstrapping a tracker - then it won't show up in the gear listing.
 
bodrin - that's better handled with a mechanic bootstrapping a tracker - then it won't show up in the gear listing.

So something similar to the extra rage tracker in the D20 system complete warrior custom user files would work better for this suggestion?
 
I'm not familiar with that - if you have the APG for Pathfinder, try enabling the Hero Points rules -that's what I'm thinking of.

Let's wait until the original poster elaborates on what he needs before we go offering too many ideas - we don't know enough about the problem yet.
 
How does your overall mechanic work? What do you need it to do? Are they gained and used in-play? Or are they gained and lost when you level up?

Can you see anything that already exists in the program that works something like this? If not, have you seen anything in the program that works similarly?

The mechanic works like Skill Points. Each class has a feature that says "Influence Points per level: X + Cha Modifier". Influence Points are then used to buy Influence. Influence is expressed as a bonus which is bought with Influence Points one 1:1 basis. 5 Influence points would buy "Influence: King of XYX +5"

Influence is used in game to exert control over people/places/organizations, much like the Diplomacy skill, except to a greater degree and on a more permanent basis. Players roll Influence+Cha Modifier+Situational Modifiers against a DC that ranges from 15-40. DC 15 would be "Provide Lodging for the Character" DC 40 might be "Provide aid against a superior power"

Influence is bought with Influence Points when characters level up. Like skill points or feats it cannot be banked for latter and can only be changed if Influence is removed by the GM, such as if an Influence is killed.

I was thinking of adding it as a Class Special, but maybe trying to stick it in as a skill would be a better way to go.
 
Alright, I think the skills table is going to be the best place to implement this. The influences can be CHA-linked skills.

I'm thinking of creating these such that they don't report their ranks to the normal skill points total, but instead report their ranks to a new resource.

Since I haven't added a Resources tab to the editor yet, I'll have to create that for you:

Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<document signature="Hero Lab Data">
  <thing
    id="resInflu"
    name="Influence Points"
    compset="Resource"
    panellink="skills">
    </thing>
  <thing
    id="abInflu"
    name="Influence Points Reporting"
    compset="Ability"
    description="Describe the Influence Points here.">
    <tag group="Helper" tag="ShowSpec"/>
    <eval index="1" phase="Render" priority="10000"><![CDATA[
      field[livename].text = "Influence Points: " & hero.child[resInflu].field[resSummary].text
 
      ~we don't want to show this in printouts
      if (state.isoutput <> 0) then
        perform delete[Helper.ShowSpec]
        endif
      ]]></eval>
    </thing>
  <thing
    id="mechInflu"
    name="Influence Points Mechanic"
    compset="Mechanics">
    <usesource source="InfluPoint" name="Use Influence Points" parent="UserParent"/>
    <bootstrap thing="resInflu"/>
    <bootstrap thing="abInflu"/>
    </thing>
</document>

Open a new file in Notepad or some other text editor, copy all of that into the file, and save the file with the extension ".user", in the HeroLab/data/pathfinder folder. (If you use Word or another document editor, it may introduce extra characters that Hero Lab won't understand, which is why I suggest using Notepad).

Close Notepad, open HL, and enable the "Use Influence Points" source that should now exist for your characters. On the Special tab, you'll see "Influence Points: 0 of 0".

Now, you can go into HL's editor and work on the next steps.

On the Ability tab, you'll find the "Ability Points Reporting" ability - replace the description text there with something more appropriate.

Now, go to the skill tab - create your influences as new skills - they'll be Charisma-linked skills, and you'll want to check the "Must Add Manually?" option. I don't know if you'll want "Only usable when trained?".

I noticed that the checkbox for user text in the skills (like the Knowledge: Other" or Craft: Other" skills) is missing from the editor. I'll fix that in the next update, but in the meantime, when you're creating your Influence: Other skill, press the "Tags" button that's at the top right. "Click to add another tag", then enter "Helper" in the "Group Id" box and "Custom" in the "Tag Id" box - leave the rest alone, and press "OK" to get out.

Okay, now for the resource usage for Influences:

For each Influence skill you create, press the Eval Scripts button among those on the top right. Add a new Eval Script, and then set the Phase to Post-Attributes, Priority: 10000.

Enter the following into the body of the script:

Code:
~subtract our ranks from the total skill points, to cancel out another
~script that adds them
hero.child[resSkill].field[resSpent].value -= field[skUser].value + field[skInnate].value
 
~add our ranks to the Influence Points mechanic
hero.child[resInflu].field[resSpent].value += field[skUser].value + field[skInnate].value

Now, for the classes.

Rather than duplicating all 18 base classes, the NPC classes, the prestige classes, and presumably every race and template that has racial HD, here's how to handle those in a single long script:

Go to the Ability tab, to the Influence Points Reporting ability that's already there - let's make use of that to calculate the total resource, rather than creating something new.

Add a new Eval Script
Phase: Post-Attributes, Priority: 10000

Code:
var bonus as number
var multiple as number
 
~count how many levels will give 2 influence points/level:
~fighters, barbarians, 
bonus = #levelcount[Fighter] + #levelcount[Barbarian]
 
~our multipler is 2 + CHA mod, minimum 1 if we have a low CHA:
multiple = maximum(2 + #attrmod[aCHA], 1)
 
field[abValue].value += bonus * multiple
bonus = 0
multiple = 0
 
~count how many levels will give 4 influence points/level:
~wizards, clerics,
bonus = #levelcount[Wizard] + #levelcount[Cleric]
 
~our multipler is 4 + CHA mod, minimum 1 if we have a low CHA:
multiple = maximum(4 + #attrmod[aCHA], 1)
 
field[abValue].value += bonus * multiple
bonus = 0
multiple = 0
 
 
~add our total to the Influence points resource
#resmax[resInflu] += field[abValue].value

You'll need a separate set of additions for each separate multiple (2, 4, 6, 8, etc.), and the bonus = #levelcount[] + #levelcount[] + #levelcount[] lines will probably get pretty long.
 
I forgot to tell you how to find out what to put in the #levelcount[].

In the develop menu in HL, make sure that "Enable Data File Debugging" is checked. Now, at the bottom of the develop menu, select "Floating Info Windows" and then "Show Hero Tags". Expand the little display that shows up to as tall as you can.

Now, start adding one level each of as many classes as your copy of HL can stand before it slows down too much. Once you're done, look at the list of hero tags, and find the "Classes" tags - write down the Tag Ids that correspond to each class - that Tag Id is what you enter for the #levelcount[]. Once that's done, delete those classes and add another batch. The Tag Ids will generally be the first 9 letters of a class' name, but sometimes classes have long names, made up of multiple words.
 
Once you're ready to add monsters with HD and templates with HD, tell me, and I'll guide you through that.

(If this is a PC-Only thing, I can instead show you how to hide it for NPCs)
 
Thanks!

Thanks for all your help. It works like a charm. I had to debug it her and there, but only because of user error :)

Happy Thanksgiving!

I'll get back to you about the templates and such. It is a resource that will be available to both PCs and NPCs, but not Monsters.

I really appreciate you writing that code for me. That was more help than I was ever dreaming of!
 
Back
Top