• 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

When to replace, when to preclude, when to hide.

Enforcer84

Well-known member
I can barely grasp the differences here, but I would like to understand it better.

if I'm right and I replace the rDwarf with my homebrew campaign's dwarf - things that look for rDwarf, racial feats, archetypes, etc. will now look for my rCusDwarf? This is true even if the source of my rCusDwarf is not selected?

If I preclude the rDwarf for my custom dwarf the original won't appear in the list of available races for selection when my source is active, but none of the picks or eval scripts that look for rDwarf will pick up my rCusDwarf unless I renter them for my race. (and I'll need to preclude the original dwarf centric things that I've reentered to work with mine)

And if I hide rDwarf...it's just not there even if I don't have my source selected and the other things just ignore my rCus like above?

Is this correct?

I'm trying to figure out the best way to allow my custom stuff to only clutter Hero Lab when the source is active :)
 
if I'm right and I replace the rDwarf with my homebrew campaign's dwarf - things that look for rDwarf, racial feats, archetypes, etc. will now look for my rCusDwarf? This is true even if the source of my rCusDwarf is not selected?
Correct for all purposes your rCusDwarf is the Dwarf in HL. So really what it means is that you have "duel" thingid's on this. One is rDwarf and one is rCusDwarf. When taken both the IsRace.? tags get pushed to the hero as "IsRace.rDwarf" and "IsRace.rCusDwarf".

This also means that you can NEVER get back to the rDwarf thing.

If I preclude the rDwarf for my custom dwarf the original won't appear in the list of available races for selection when my source is active, but none of the picks or eval scripts that look for rDwarf will pick up my rCusDwarf unless I renter them for my race. (and I'll need to preclude the original dwarf centric things that I've reentered to work with mine)
Preclude means to "hide" this Thing from all scripts when a specific source is active in HL.

For the most part thingid.rDwarf is NOT hard-coded into the hero lab scripts. Just the check for #hasrace[] macro that looks for IsRace.rDwarf (not near HL but I think that is the tag). Meaning to trick most of HL into thinking you are the core dwarf race you could simply assign the tag "IsRace.rDwarf" to the hero when your custom dwarf is taken.

And if I hide rDwarf...it's just not there even if I don't have my source selected and the other things just ignore my rCus like above?
Hide means rDwar is always gone from Hero Lab in all cases.

The other option I have done is I never do "Replace Thing ID" or hide core stuff anymore. It causes too many issues as HL core material is constantly being changed/updated. You are better off auto applying archetypes to classes or ARTs to races to make your changes then doing any of the above. Its cleaner and will cause you less issues when LW changes dwarves in the next update.

I recently changed the Spell Focus feat thinking "no LW won't make changes to that feat as its a core feat been around for a LONG time". And in the VERY next patch LW changed Spell Focus logic and caused my Replace Thing ID feat to triple the bonus. :(
 
Correct for all purposes your rCusDwarf is the Dwarf in HL. So really what it means is that you have "duel" thingid's on this. One is rDwarf and one is rCusDwarf. When taken both the IsRace.? tags get pushed to the hero as "IsRace.rDwarf" and "IsRace.rCusDwarf".

This also means that you can NEVER get back to the rDwarf thing.


Preclude means to "hide" this Thing from all scripts when a specific source is active in HL.

For the most part thingid.rDwarf is NOT hard-coded into the hero lab scripts. Just the check for #hasrace[] macro that looks for IsRace.rDwarf (not near HL but I think that is the tag). Meaning to trick most of HL into thinking you are the core dwarf race you could simply assign the tag "IsRace.rDwarf" to the hero when your custom dwarf is taken.

What's the best way to go about this? Can I add it to my custom dwarf race?
That would save me a lot of cutting and pasting :) (and really declutter some of my user files)

And thanks for the response, I am happy that I seem to have figured that out. (also sorry to hear about your replacement issue)
 
I did a lot of this for the project I am working on. I found the "replace thing id" is cool, but not a real good idea.

What worked for me, was to try to modify the race (or whatever) by scripts on other things, (a mechanic or Alt Race Trait, etc).

How different is your custom Dwarf from the core Dwarf?
 
What's the best way to go about this? Can I add it to my custom dwarf race?
That would save me a lot of cutting and pasting :) (and really declutter some of my user files)

And thanks for the response, I am happy that I seem to have figured that out. (also sorry to hear about your replacement issue)
I would setup the script to run on your custom dwarf race so that when it was added the new tag gets assigned to the hero.

Two things to keep in mind. You will need a little more scripting if you want to use the original Dwarfs "ARTs" (Alternate Racial Traits). But again not really that hard. But not near HL so don't remember how I did it. I can look tonight.

The only last thing would FCB (Favored Class Bonuses). Again not super hard but the only other issue with not doing the replace thing id. I don't know how important those are for you.

Not near HL but I think IsRace.? is what #hasrace[] looks at:
First/10000
Code:
perform hero.assign[IsRace.rDwarf]
The above lets Pre-Req know that the Dwarf race has been added to the hero.
 
Hmm well just cutting and pasting that had no effect...I put that in eval script. Is that correct?
I had to double check as I was not near HL. So a few extra tags to apply. This is from my custom catfolk race that needs to act like the official version:

First/100:
Code:
~ set that we are the ARG Catfolk
perform hero.assign[Race.rCatfolk]
perform hero.assign[IsRace.rCatfolk]
perform hero.assign[RaceEquip.rCatfolk]
perform hero.assign[Subtype.stCatfolk]
perform hero.assign[wGroup.rCatfolk]
Give that a try and see if better....
 
Correct for all purposes your rCusDwarf is the Dwarf in HL. So really what it means is that you have "duel" thingid's on this. One is rDwarf and one is rCusDwarf. When taken both the IsRace.? tags get pushed to the hero as "IsRace.rDwarf" and "IsRace.rCusDwarf".

This also means that you can NEVER get back to the rDwarf thing.


Preclude means to "hide" this Thing from all scripts when a specific source is active in HL.

For the most part thingid.rDwarf is NOT hard-coded into the hero lab scripts. Just the check for #hasrace[] macro that looks for IsRace.rDwarf (not near HL but I think that is the tag). Meaning to trick most of HL into thinking you are the core dwarf race you could simply assign the tag "IsRace.rDwarf" to the hero when your custom dwarf is taken.


Hide means rDwar is always gone from Hero Lab in all cases.

The other option I have done is I never do "Replace Thing ID" or hide core stuff anymore. It causes too many issues as HL core material is constantly being changed/updated. You are better off auto applying archetypes to classes or ARTs to races to make your changes then doing any of the above. Its cleaner and will cause you less issues when LW changes dwarves in the next update.

I recently changed the Spell Focus feat thinking "no LW won't make changes to that feat as its a core feat been around for a LONG time". And in the VERY next patch LW changed Spell Focus logic and caused my Replace Thing ID feat to triple the bonus. :(

I had to double check as I was not near HL. So a few extra tags to apply. This is from my custom catfolk race that needs to act like the official version:

First/100:
Code:
~ set that we are the ARG Catfolk
perform hero.assign[Race.rCatfolk]
perform hero.assign[IsRace.rCatfolk]
perform hero.assign[RaceEquip.rCatfolk]
perform hero.assign[Subtype.stCatfolk]
perform hero.assign[wGroup.rCatfolk]
Give that a try and see if better....

Thanks, Will do!
 
I think the IsRace.? tag is only used for pre-reqs so it's probably assigned really late normally. It'd guess it's the Race.? tag that triggers the other stuff
 
Bringing this back from the grave to ask a related question.

When precluding, what happens if the user doesn't have that the thing that's being precluded.

From what I understand replaceID throws an error if the thing doesnt exist but preclude does not. Correct?
 
Bringing this back from the grave to ask a related question.

When precluding, what happens if the user doesn't have that the thing that's being precluded.

From what I understand replaceID throws an error if the thing doesnt exist but preclude does not. Correct?
HL use to fail and I think it still does. I would do a proof of concept and turn off one of your Packages that does a Preclude and see what HL does.
 
Okay now a follow up; the pathfinder files that you purchase through Lonewolf (or 3pp bundles). Are contained in packages (*.pkg), I have slowly moved each of them from the core folder to a subfolder to stop them from being compiled.

What I get is rather odd, for instance take the kitsune (ARG). If I preclude that and remove the relevant packages it still functions. Is that because I have some residual trace of it on my system or is that the way it will work for everyone.

Honestly, I'd rather not use precludes, I'd rather just assign Helper.Helper tags to reduce clutter on available selections (classes, feats, spells, templates, races). But for the vast majority of those the Helper.Helper tag just doesn't work.
 
Okay now a follow up; the pathfinder files that you purchase through Lonewolf (or 3pp bundles). Are contained in packages (*.pkg), I have slowly moved each of them from the core folder to a subfolder to stop them from being compiled.

What I get is rather odd, for instance take the kitsune (ARG). If I preclude that and remove the relevant packages it still functions. Is that because I have some residual trace of it on my system or is that the way it will work for everyone.

Honestly, I'd rather not use precludes, I'd rather just assign Helper.Helper tags to reduce clutter on available selections (classes, feats, spells, templates, races). But for the vast majority of those the Helper.Helper tag just doesn't work.

Try Helper.Obsolete
 
Okay now a follow up; the pathfinder files that you purchase through Lonewolf (or 3pp bundles). Are contained in packages (*.pkg), I have slowly moved each of them from the core folder to a subfolder to stop them from being compiled.
This functionality is built into HL now. Its on the develop menu and you can just turn off the packages you don't want. :)

As mentioned HL may correctly now taking into account Preclude vs a Thing that is not loaded. I had not tested that exact condition but Colen added allot of logic to allow HL to load even when licensed "Things" are missing.
 
Back
Top