• 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

Pick Racial Ability for new race...

ShadowChemosh

Well-known member
I was doing really well adding stuff into HL until I got to trying to add the Shifter race from Eberron.

I didn't think this was going to be too bad as I was able to add another race that lets you pick pick their parent dragon type and have it link to the type of breath weapon and energy resistance they got. Even added an extra feat that lets you tack on a 2nd energy resistance type.

Somehow I am not getting this new one though for the shifter as I have to have them pick their type of shifting. I have a new racial ability called Shifting and I have a working pull down list of types of shifting (ie Beasthide[thingid.raSTbeasth], Longtooth[thingid.raSTlongto]) that can be chosen. The problem is that selecting them does nothing. So I figured I had to somehow script something that when chosen the correct thingid was then bootstraped to the race.

The problem is I can't seem to find any type of example to copy from to do this or something similar. So how does one bootstrap something by scripts?

Thanks
 
You probably correct- its a bootstrap

I would probably leave them as just descriptions though, as they are not permanent modifiers.

also check if "shifting" hasn't been used somewhere else, you may have to rename it.
 
I highly recommend making the multiple shifter versions as separate races. You can add a Custom tag (through the "User Tags" button near the bottom of most editor panels) like Custom.Shifter, and then use that to build your pre-reqs for feats that require "Shifter Race".

The mechanics used for element switching are very complex, and I don't recommend tackling them.

For example, you can't control a bootstrap from within a script. All bootstraps must be established before any scripts are run, because the things you're bootstrapping have scripts, too.

Check the "Condition" button in the bootstraps list - that's where the switching is actually being handled.
 
I highly recommend making the multiple shifter versions as separate races. You can add a Custom tag (through the "User Tags" button near the bottom of most editor panels) like Custom.Shifter, and then use that to build your pre-reqs for feats that require "Shifter Race".
Well that is one way to do it, but would prefer to rather have the ability to pick. I had hoped to add one other custom race and it has LOTS of things to pick from so I had hoped to use the Shifter as a test bed to learn.

The mechanics used for element switching are very complex, and I don't recommend tackling them.
I understand, but if you have an example at all to share that would be great and I am hopeful I can then figure it out.

For example, you can't control a bootstrap from within a script. All bootstraps must be established before any scripts are run, because the things you're bootstrapping have scripts, too.
Ok good to know and makes sense. So I need someway then to disable or at least NOT show the bootstrapped thing on the printed character sheet. Their is a check mark under racial abilities called "Show in Specials List?" this seems to prevent a bootstrapped thing from printing on the character sheet. Can I get access to this through a script?

Check the "Condition" button in the bootstraps list - that's where the switching is actually being handled.
I can't find anything that uses this area so I am in the dark to how to use the Condition section. I found a mention in the forums that talk about using
Code:
fieldval:pIsOn > 0
to do some disabling, but it was very vague. Can you shine any more light on this for me?

Thanks
 
Well that is one way to do it, but would prefer to rather have the ability to pick. I had hoped to add one other custom race and it has LOTS of things to pick from so I had hoped to use the Shifter as a test bed to learn.

If you've seen Pathfinder 25, it has a massive (110) number of alternate racial features for the Tiefling race. I don't know when I'll be able to get to it (not in the next month, at a minimum, I'm afraid), but I want to create a set of custom racial features, like the way there are custom class features.

That mechanism is exactly what you need here.

If you can switch to other projects for a few months, I'll hopefully have a chance to enter those mechanics by then. If you're doing this for a specific character or three in your game, just create only what they need, without the effort of the switching.

I understand, but if you have an example at all to share that would be great and I am hopeful I can then figure it out.

The Dragon Disciple class and the sorcerer's draconic and elemental bloodlines are where this gets used. The elemental bloodline is less confusing to study, because you don't have to worry about the way the draconic bloodline and the dragon disciple class interact.

First, you need a tag for everything to key off of. The Sorcerer handles this in a script on itself:

Code:
<eval index="1" phase="First" priority="450"><![CDATA[
~because custom class specials test their existnace at First/500, they can't run a script before then
~however, we need to find out what energy has been selected, so we know which set of abilities to add
~therefore, we make the check from the class, rather than the bloodline, and forward that tag to the hero
if (hero.findchild[BaseCustSp,"SpecSource.cHelpSor"].field[usrChosen1].ischosen <> 0) then
perform hero.findchild[BaseCustSp,"SpecSource.cHelpSor"].field[usrChosen1].chosen.forward[BloodEner.?]
endif
]]></eval>

So, you'll note that there's a specific set of BloodEner tags that each of the element selector things has. You'll be using Custom tags instead. Each of your selector things will have a Custom.ShiftXXXXX tag on it, and your race will look up whatever selects the specific type, and forward its Custom.ShiftXXXXX tag to the hero. Timing: very early (hopefully First/450 works for races, too).

Now, to look at the Elemental Bloodline - pull that up in the custom class specials list, and look at the various bootstraps it adds. Each one has a Condition of "BloodEner.XXXX", and a timing on that condition of First/500. So what that's doing is to look on the hero (conditions look at things on the hero) for the presence of a specific tag. If that tag is there, the bootstrap is live, otherwise, it's not live and will not run its scripts or do anything else to announce its presence.

So, each of the four versions of the elemental bloodline has its own set of bootstraps, and the tag that's forwarded to the hero determines which of those 4 becomes live.
 
If you've seen Pathfinder 25, it has a massive (110) number of alternate racial features for the Tiefling race. I don't know when I'll be able to get to it (not in the next month, at a minimum, I'm afraid), but I want to create a set of custom racial features, like the way there are custom class features.

That mechanism is exactly what you need here.

If you can switch to other projects for a few months, I'll hopefully have a chance to enter those mechanics by then. If you're doing this for a specific character or three in your game, just create only what they need, without the effort of the switching.
That will be perfect for the other race that I would like to enter. Waiting a few months is not a problem either and I will for the other more advanced custom race I would like to enter. All the work I am doing now is for a new campaign that is 6 months away. Just figured I would get a jump on inputting the stuff into HL.

Now another question. I followed what you said above and I a think I am VERY close to getting it to work actually. I just can't seem to get the Custom tags to attach to the hero. Here is my modified code that I have on the shifter race.

Code:
if (hero.findchild[BaseCustSp,"SpecSource.rShifters"].field[usrChosen1].ischosen <> 0) then
perform hero.findchild[BaseCustSp,"SpecSource.rShifters"].field[usrChosen1].chosen.forward[Custom.?]
endif
I got SpecSource.rShifters from looking at the tags for the racial ability Shifting that has the thing selector. It seems like it should work? I tried Phase First from 300 to 500 and same results which is nothing. I also tried debug and that is confirming that the ischosen value keeps being 0. Any more advice.

Thanks
 
the findchild[BaseCustSp will only find a Custom Special. Those can only be added to a class. You'll need to change what that's looking for.

BaseRace will find a race, RaceAbil will find a racial ability - what component does the thing that holds the shifter type use?
 
the findchild[BaseCustSp will only find a Custom Special. Those can only be added to a class. You'll need to change what that's looking for.

BaseRace will find a race, RaceAbil will find a racial ability - what component does the thing that holds the shifter type use?
This got me SO much closer. I am using the following and its working.
Code:
if (hero.findchild[RaceAbil,"thingid.raShifting"].field[usrChosen1].ischosen <> 0) then
perform hero.findchild[RaceAbil,"thingid.raShifting"].field[usrChosen1].chosen.forward[Custom.?]
endif
raShifting is the Thing that I have all the different shifter traits bootstrapped too and has the List(pull down menu) of choices. So then to get them to show up on the character sheet I had to add the following to their Eval Scripts section changing the ShifterLT to be the ShifterXX(ie ShifterLT is for Shifter Longtooth) value that matches to the Custom tag on each trait.
Code:
~Post-Levels 1,000
if (hero.tagis[Custom.ShifterLT] <> 0) then
     perform assign[Helper.ShowSpec]
endif

Now I appear to have one last small problem. Several of the Racial shifter traits are bootstrapped with Natural attacks. I thought from what you had said that the Bootstrapped condition that is looking for the tag expression Custom.ShfiterXX (where XX is replaced with the specific custom tag I entered for each Thing) would prevent the bootstrap from happening unless it found that tag on the hero.

So is their away to stop the Natural attacks that are bootstrapped to the shifter trait Racial Special Thing from showing always? I tried adding the tag expression Custom.ShifterXX to the condition of the bootstrapped Natural attack, but that didn't seem to do anything.

Hmm I hope this question makes sense. Here is a break down to help.
Racial Special:
Longtooth - thingid.raSTlongto (this has the natural attack wBite bootstrapped to it with a condition of 'Custom.ShifterLT')
-It also has an eval scrpt that tests for the Custom.ShifterLT tag and if found does the assign[Helper.ShowSpec] to have it appear on the character sheet)

Shifting - thingid.raShifiting (this Thing has the Longtooth bootstrapped to it with a condition of 'Custom.ShifterLT')
-It also has an eval scripts that assigns the Custom.? tag that is chosen to itself)

Race:
Shifters - thingid.rShifters (this has the eval script listed above to see what was picked and assign it to the hero)

Thanks again for the help. I am so close to getting this to work exactly how I would like. Hopefully stopping the natural attacks from showing up is easy. :)
 
So is their away to stop the Natural attacks that are bootstrapped to the shifter trait Racial Special Thing from showing always? I tried adding the tag expression Custom.ShifterXX to the condition of the bootstrapped Natural attack, but that didn't seem to do anything.
It turns out the above does work just fine and prevents the natural attack from appearing unless selected, but you have to completely exit HL and go back in to get it to work.
 
Back
Top