• 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

Help with FREE Hinderances and Edges

Hi:

I have been going through the examples listed here and they have been a great help. One thing I cannot find how to do is to add a hindrance or edge that does not count against the limits for them.

For example, I want to give Arrogant to a race, have it listed under Hindrances, but not count against the limit for the hindrances.

Any help is good help.

Thank you

--Eric
 
Usually for Racial Properties/Abilities I tend to just apply the effect of that Edge/Hindrance within the Property/Ability rather than Bootstrapping one in. Although I notice I do things like bootstrap the Mutation hindrance in my Hell on Earth file for Doomsayers and I don't get any errors that way. In fact if you're Bootstrapping through something else those bootstraps shouldn't be counting against the character, I don't think.
 
If it is affecting the totals, you can reverse it kind of like how bootstrapped skills is done. If you need me to I can look up the things to modify for you. Just PM me as a reminder.
 
You can do all of the following with an eval script that is Pre-Traits 5000. It is before Calc trtFinal (in the Timing button at the bottom).

To alter the number of Hindrance points that you have is as follows, with X being the value that you want to place there.
Code:
hero.child[resHinder].field[resMax].value += X

I use that because I give so many points in a campaign where I want different races to have varied costs. I then have that racial cost apply against the Hindrance points. This helps to allow races to be their "correct" values and keeps things fair.

For edges, again with the X
Code:
hero.child[resEdge].field[resMax].value += X

For skills, again with X
Code:
perform #resspent[resSkill,-,X,"Free Skill"]
Note that I do not think that the "Free Skill" shows up anywhere, but it helps to recall why it is there when looking at the code.
 
Hi Folks,

Long time Hero Lab user, newish to the editor.

I'm running into this problem too - I'll try to explain the best I can:

I'm working on the Beasts&Barbarians setting - the Hindrance Illiterate is disallowed in this setting, but a hero can choose to be Illiterate, granting a +1 Smarts skill point, and they can later learn to read/write by spending an Advancement option for it.

For purposes of the editor since the rules describe the exact behavior of a free hindrance, I have created a copy and set it to replace the existing default setting hindrance and I'm bootstrapping rewSkill. So far so good.

The problem is, if the player has chosen to be illiterate and then adds other hindrances they fail validation because the normal 2 minor/2 major limit is not ignoring the replacement Illiterate hindrance (the bootstrapped reward sets the reward total to 1 and validation then allows only 3 more points before complaining).

I tried using the hindrance code snippet above on my replacement Illiterate, but then it set the reward total to 2 with +=1 and to Overspent 1/x when a -=1 is used.

I'm hoping there's a way to set the +1 skill and refund the cost, or increment the allowed points from hindrances to 3 minor/2 major only when the Illiterate hindrance is selected, but I haven't found it yet - any thoughts?
 
Hmm.. so I tried to post a reply the other night and it said something about a Moderator (I must have hit a key because the message went away rather quickly,) but my message still hasn't made it through. So, take 2, and apologies in advance if my other message ends up showing up.

I'm working on a Beasts & Barbarians .user file,and I've run into a snag I haven't been able to figure out.

In B&B, the Illiterate hindrance is disallowed, however any character can choose to be Illiterate and gain a +1 to a smarts skill. They can later learn to read by spending an advancement option. But it's not considered a hindrance and it's not supposed to count against your limit.

For editor purposes this acts exactly like a hindrance, so I have created one and used "replaces thing" to replace the default Illiterate hindrance. My version bootstraps rewSK (I think, don't have it in front of me at the moment) to add a +1 skill reward. All good.

The problem is, when selecting my Illiterate it increments the Rewards counter to 1/1 (should be 0/0) - this causes the validation error "overspent" by 1 point if the user selects their full complement of hindrances.

I've tried the hindrance snippet in this thread but it doesn't quite help. (+= 1 makes it 1/2 giving a free extra reward and -= 1 makes it 1/0 and immediately validation error.)

What's really odd is I looked at the Noble edge - it bootstraps in Rich and doesn't set off the validation report - but there's no code in the Thing that does it that I can see. I set up my hindrance the same way, but it doesn't have the same behavior.

Regards,

~M
 
rewSkill has these two effects: it grants a skill point and it counts towards the reward total, as you have noted above. Bootstrapping it also causes those two effects. Bootstrapping an edge has the effect of that edge. OK, so your confusion is why can you buy an edge and it costs an edge or you can bootstrap it for free. It is the nature of how those two different types of things work. It is far more likely that someone get an edge for free, such as by a racial ability or even a magic item, so it is good that it works that way.

So, how to fix your issue? Hmm that one is kind of tricky. To sum it up these are the factors:
1) You want Illiterate to be available, but it is not available as a Hindrance in the setting.

2) If a character is illitererate it gets a +1 skill point on a Smarts skill.

I have never tried it, but you probably could make a list of Smarts skills. But it is easier to just say "hey, here is an additional skill point, have at least one skill point in a Smarts skill and you are good to go".

So you want to be able to pick illiterate and then give a skill point.

First I would go to your custom user file that has a Source applied to it.
Lets call it "BBarb".
Then I would go to the Preclude and create a new preclusion.
I would enter "hinIllit" and haev "BBarb" as the source.
This makes it so that Illiterate is no longer available.

Then I go to the Hindrance tab in the editor. Click on New (Copy) and get the old Illiterate Hindrance. Give it a new ID, maybe hinBBIllit or whatever. Then be sure to give it the same source. This will make it appear in place of the old one. Go ahead and type in something about the skill point in a Smarts skill, maybe even copy-paste the text from Beasts and Barbarians.

Go to its Eval Script. This is how you will make it work for you. Click to add a new one.

Phase is Pre-Traits
Change the Priority from 100 to become 5000

At the bottom, but above the "OK" box there is a gray box that says Timing. Click on that and you will see a little data box by "Before Scripts". Copy paste this into it:
Calc trtFinal
Click OK and now time to enter the actual Script
~ Gives a free SMRT skill because you so smrt
hero.child[resSkill].field[resMax].value += 1

~ Offset the fact that this is a Hindrance, in this case it is normal.
hero.child[resHinder].field[resMax].value -= 1
herofield[acMaxMinor].value += 1
herofield[acMaxHindP].value += 1

I am also nice in that I tested it to make sure that it works like I said it would. It does. Enjoy and you are welcome. I don't have time enough to churn out the data sets but I can at least give the answers on how to do things.
 
One thing you might add here is a Literacy Edge, since it presumably costs an Advance, but it should have a Pick Req of Illiterate.
 
Ok, you guys rock :)

It's working now, THANK YOU! One note I didn't use preclude, but instead used Replace ThingID - any reason to do one over the other? I've been precluding things that are forbidden, and Replacing things that are modified thus far.

Here's the resulting XML after inserting your code.

Code:
<thing id="hinBBIll" name="Illiterate" description="The Dread Sea Dominions are a very illiterate world. So, as per the standard game rules, almost all the characters should have the Illiterate Hindrance. Yet, this would cause a generic flattening of the heroes. Hence, the Hindrance is ignored and each player is allowed to decide if his hero knows \nhow to read and write or not (depending on the hero’s background). Illiterate characters have an extra Skill point, to be spent on a Smarts based skill.\n\nCharacters can become literate during the \ngame by spending a leveling option.\n\nYour hero cannot read. He can probably sign his name, but can do little else. He also doesn&apos;t know much about math either. He can probably do 2+2=4, but multiplication and the like are beyond him.\n\nIlliterates can&apos;t read or write in any language, by the way, no matter how many they actually speak." compset="Hindrance" summary="Cannot read, write, or do math +1 smarts skill pt" replaces="hinIllit" uniqueness="unique">
    <usesource source="setBBGold"/>
    <eval phase="PreTraits" priority="5000">~ Add a free Skill point for illiteracy. 
hero.child[resSkill].field[resMax].value += 1

~ Fix the hindrance and reward point numbers.
hero.child[resHinder].field[resMax].value -= 1
herofield[acMaxMinor].value += 1
herofield[acMaxHindP].value += 1

~ Thanks to SeeleyOne and zarlor.
      <before name="Calc trtFinal"/>
      </eval>
    </thing>

Also - is there a master list of these things (resHinder, resMax, etc)? I think I could get much farther with the common code information if I could figure out what all the field references are.

Thanks again!

~M
 
Using Replace will replace it in ALL settings. You can mess up a bunch of other stuff by using Replace and it's basically recommended that you simply never use it.

As for a master list of things... I mention a few of the main resources to use to help figure things out at the top of the Code thread.
First I have found it very useful to go through the documentation found in Hero Lab by going to Help -> Savage Worlds Manual and from within that Manual there is a link to "Creating Custom Material" that also has some useful, although maybe a little confusing, stuff in it. But probably the most useful section I found was a little more buried. Go to Help -> Savage Worlds Manual, then click on "Adding Custom Content" then hit the "Click here" part of the sentence that says "Click here for more information on using the Editor with Savage Worlds." That information and the Tutorials section there on creating a Race is something I found to be really helpful. Finally I found the Expressions at http://hlkitwiki.wolflair.com/index.php5/Tag_Expressions to be very useful as well. I would also add that Mathias has written some really useful posts on the Pathfinder forum which he links here. Some of his examples may look Pathfinder specific, but they're still very relevant for coding in Savage Worlds files, too.

There's also the Wiki at http://hlkitwiki.wolflair.com/index.php5?title=Main_Page. Otherwise one of the main places outside of the above is to look in the source files. In the same directory you placed your .user file there is a directory called "source" and the files under there contain the entire game system. Several of those have lots of useful details.
 
Last edited:
If you do ever use a Replace Thing ID, never ever put a source ID on it. It causes complaints when opening other characters that have the thing/item/whatever but not the source checked. It also becomes invisible to things do not have the source checked.

As stated above, it becomes a universal "house rule". As long as the user file is in the folder, it is applied to everything that uses that thing.
 
As for the rewards and hindrances, I figured that out by looking over the source code. I came up with a house rule where I give characters some extra reward points and they can either use it to buy whatever those points do or buy a race. That way it was possible to have races that are worth variable amounts of points instead of the standard +2.
 
One thing you might add here is a Literacy Edge, since it presumably costs an Advance, but it should have a Pick Req of Illiterate.

Good call, but if you do this, I would suggest that you add the following to the new Illiterate hindrance, assuming that you give the Literacy edge the unique id of edgLiteracy

Code:
if (hero.tagis[Edge.edgLiteracy] = 1) then
      perform this.assign[Print.NoPrint]
endif

This way the character can "buy" it off and the hindrance will no longer show up on the printout.
 
I'm going through and converting my Replace Thing IDs to Precludes now that I know better. Thanks for that, I never would have expected!

I did use zarlor's suggestion for an Edge called "Become Literate" that requires Illiterate as a pick-req, and I found your discussion of print.noprint in the Edge Upgrades and Visibility thread and applied it as well, so it's good to know I'm thinking along the right lines!

Thanks again guys. I'm sure I'll come up with more questions as I go, but it's starting to fall more in place thanks to your help.

Regards,

~M
 
I'm going through and converting my Replace Thing IDs to Precludes now that I know better. Thanks for that, I never would have expected!

I did the exact same thing when I started using the HL editor as well, so it's a very common mistake to make. They should put a mouse-over warning by that in the Editor or something.
 
I still use them sometimes. There are situations where it is better to use them. In Mutants and Masterminds I wanted to change the cost of many of the power effects, the only way to do that and still have the downloadable characters apply them is by having the powers replace the originals. It is better than going to each character and changing them to my new version manually.

I have yet to want to use Savage Worlds characters to download that were entered into a book, however.
 
It's a great way to do things if you are only going to share with your players that have hero lab, but if your going to share any files with the community, then it's a definite no, no! LOL
 
I discovered the downside of not using the replace functionality.

I made a setting specific duplicate of the modified skills for the Beasts & Barbarians setting in the editor when I first started creating the datafile a couple of weeks ago - then the other night I noticed the "Thief" Edge from the base setting wasn't applying the +2 stealth after I converted all the replaces to hidden.

Now it looks like I'll be going through all of the edges from the default setting to identify which ones reference the modified skills and making duplicates of them to reference the replacement skills.

Seems like limiting the replace field to only function when a source is selected would make a lot of sense instead of being global (that's actually how I thought it worked originally). Currently a change that could be made with 1 field entry is going to require many more hidden and duplicate edge entries.
 
Can mechanics and description overwriting cover the changes you need to make, so that you don't need to hide or replace anything?
 
Personally I avoid both Replaces and Hidden like the plague. Precludes (which are source specific) are the way to go. Replacing skills wholesale, though, that's something I'd generally avoid (except for power skills, like faith or spellcasting, which generally don't cause a problem to make new versions of since the main things that reference it are an AB that you're creating for a setting anyway).

Description overwriting, though? I've never done something like that but I also wonder if there is a wholesale replacement of skills happening why would you do that and is it, indeed, just something that a description overwrite could handle.
 
Back
Top