• 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

Thing that modifies existing sense range?

Unseelie

Well-known member
Is there an ability/racial trait I can look at in the editor that would point me in the right direction for taking an existing sense (Darkvision) and reducing the range as part of an ART?
 
Looking at Acute Darkvision, they just a racial special ability that has a larger range.

But, if I attempt to do that and reduce the range, it's ignored, and the special tab still states 60' instead of 30' like I want.

So, I'm stumped.
 
I've looked at it (Daywalker) now, made some changes to follow that example and it still does not work.

I can easily remove the existing Darkvision, and I can increase the range of the Darkvision, but it will not reduce the range. Instead it just leaves the existing value in place.

At this point I'm wondering if I'm running into a limitation of Hero Lab, or there's some sort of timing subtlety, and I'll need do some sort of eval script.

If you have access to the Advanced Races Compendium from Kobold Press, what I am trying to is create the Daywalker ART for the Lesser Derro.

A mutation has given this derro eyes that are much better able to withstand the harsh glare of the sun. The derro no longer has light sensitivity, and its darkvision is reduced to 30 ft. This racial trait replaces poison use.
 
Or, I could create yet another Darkvision, with a 30 foot range, and replace one with the other... but I know we should try to avoid creating new things if existing ones will work. The fact that it will increase the range, but not decrease it is odd.
 
Did any of those suggestions use the abAdd field? A negative value in that field should work. Actually, try abImprove first - that'll only be added if there's a positive value already, so you won't accidentally end up with Darkvision -30' if someone forgets to delete the ART when they change their mind about what race to be.
 
Okay, that points me towards an eval script. Neither of the examples used an eval script... I'll fool around with this.
 
Actually, bootstrap darkvision with an abImprove of -30 field assignment - Darkvision is already set up to stack all the copies on the character, so the -30 should get added to everything else, so the total should come out right.
 
Thanks Mathias. Clearly I'm missing a concept here, because adding an abImprove -30 to raDarkVis also doesn't seem to do anything. Looking at the Debug Field History, it looks at though abImprove remains 0.

Code:
  <thing id="raKPDaywDE" name="Daywalker" description="A mutation has given this derro eyes that are much better able to withstand the harsh glare of the sun.  The derro no longer has light sensitivity, and its darkvision is reduced to 30  ft.  This racial trait replaces poison use." compset="AltRaceTrt" uniqueness="unique">
    <comment>TO DO:
Change to Darkvision range is not reflected in the special tab.</comment>
    <usesource source="bKPAdvRace"/>
    <tag group="RaReplace" tag="raLightSen"/>
    <tag group="Helper" tag="NoPathSoc"/>
    <tag group="AllowRCust" tag="rKPLDerARC"/>
    <tag group="RaReplace" tag="raPoiUse"/>
    <tag group="Helper" tag="SpecUp"/>
    <bootstrap thing="raDarkVis">
      <assignval field="abImprove" value="-30"/>
      </bootstrap>
    </thing>
 
Thanks Mathias. Clearly I'm missing a concept here, because adding an abImprove -30 to raDarkVis also doesn't seem to do anything. Looking at the Debug Field History, it looks at though abImprove remains 0.

Code:
  <thing id="raKPDaywDE" name="Daywalker" description="A mutation has given this derro eyes that are much better able to withstand the harsh glare of the sun.  The derro no longer has light sensitivity, and its darkvision is reduced to 30  ft.  This racial trait replaces poison use." compset="AltRaceTrt" uniqueness="unique">
    <comment>TO DO:
Change to Darkvision range is not reflected in the special tab.</comment>
    <usesource source="bKPAdvRace"/>
    <tag group="RaReplace" tag="raLightSen"/>
    <tag group="Helper" tag="NoPathSoc"/>
    <tag group="AllowRCust" tag="rKPLDerARC"/>
    <tag group="RaReplace" tag="raPoiUse"/>
    <tag group="Helper" tag="SpecUp"/>
    <bootstrap thing="raDarkVis">
      <assignval field="abImprove" value="-30"/>
      </bootstrap>
    </thing>

EDIT: Saw a thing called raDarkV30f that you could bootstrap instead if you want to be really lazy. (Make sure to Remove Racial Special raDarkVis for this path.)

Edit2: Ok so I did some testing with raDarkVis and even though the script should not post 60 if a value is injected into it before that script runs it just keeps ignoring all values I throw at it at many different timings! Even trying the abImprove method at Final Phase 20000 just for kicks and nothing. What is working for me at the moment is eval script [Final Phase 11000] hero.childfound[raDarkVis].field[abValue2].value = -30
This confounded ability has quite the issue if the IF statements are not working as intended. Any value in the abValue box prior to Final Phase 10000 should keep it from going to default, but I wager a script is pulling this value from somewhere in the void, although currently stumped as to how, when, where. I will continue to look into this.

My first post...ignore it: To use abImprove as Mathias stated I think you need to inject it into the current copy of Darkvision instead of bootstrapping another darkvision with that assigned field. Easier route is to set the "Remove Racial Special" and then use either that bootstrap with that field assigned or add in field abValue 30. Either should work then.
 
Last edited:
Darkvision is a special which unfortunately twists itself into spaghetti to handle a legacy assumption ("if we're bootstrapped without a value, assume our value is 60"). Things stacking or not would be much simpler if we could assume that every copy has a value assigned, but that's the way it is.
 
Thank you everyone, especially Delta. That works, and it's good to know that I was basically correct as to what was going on. Now to just comment that eval script so it's clear what it does. :)
 
You might want to post your working solution for future cases where people are trying to do similar things.
 
Back
Top