Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - D&D 5th Edition SRD


Thread Tools Display Modes
Senior Member
Join Date: Sep 2017
Posts: 318

Old January 29th, 2020, 01:09 PM
One of the things not yet programmed is the release version of the Aberrant Dragonmark. I have a decent amount of it covered, but my first snag is how it allows you to choose to spend a Hit Die. Here's the details
  1. You have a spell you can cast 1/short rest
  2. When you cast the spell, you can choose to also spend a Hit Die
  3. The hit die either gives you a small temporary HP pool or deals damage to someone

So programming #1 on its own is pretty easy. Adding the temp HP pool in #3 is also easy enough, except we'll have to have the user indicate whether they got the pool or they did the damage, as it's based on the die roll.

The real tricky part is #2. We need to be able to deduct one HD from the overall pool (which will probably be even more complicated if they have multiple HD pools from multiclassing). It can't be an activated ability that just reduces the HD tracker (which I also don't know how to get at) by 1, since multiple hit dice can be used for this between long rests. It basically has to be something that, when clicked, "permanently" reduces the HD tracker, until that tracker is added to as part of a regular long rest.

So I guess what I'm asking is this:
  • Can an effect be instantaneous (IE not a constantly-running eval script or bootstrap)?
  • Does anyone know how to tell Hero Lab to deduct one Hit Die?
  • How do we combine the answers to these questions?

"Ooooooooh, he's tryin'!"
Fenris447 is offline   #1 Reply With Quote
Senior Member
Join Date: Sep 2012
Location: Ottawa, Canada
Posts: 786

Old January 30th, 2020, 04:20 PM
The way I'd do it is set it up to manually remove the amount of hp. You need to be able to somehow select the appropriate number of hit points, then reduce Current and Max hp by that amount.

Maybe set it up to select the HD value you want to use in the case of multiclass. Youd proably have to associate an amount of hp to each type of HD. (ie. selecting d12 set Value = 12). this would be used to restrict the max hp you could lose.

I may be making it more complicated then you want . . . not sure.

Watch your back, Conserve your ammo,
and NEVER cut a deal with a dragon!
Mergon is offline   #2 Reply With Quote
Senior Member
Join Date: May 2016
Posts: 590

Old January 31st, 2020, 05:59 AM
I played with this once. The fields on the hit die are tricky and timing has to be done after final/10000 but before render steps. Some of the fields can't be manipulated at all.

Each of the hit die types are stored on the hero in containers named hd4, hd6, hd8, hd10, hd12 and hd20.

You can see the fields on these objects if you have debugging enabled and right-click on the hit die on the In-Play tab.

You can do something like the following:

Check to see if a hero has a d8 hit die.

if (hero.childfound[hd8].field[trkMax].value <> 0) then
... code based on fact you found that you had at least 1d8 to play with

Remove one of the hit die left in the d8 pool.

hero.childfound[hd8].field[trkLeft].value -= 1

The problem in your scenario is that I don't think you can add a button to press that just removes 1 hit die per click. You could probably create an adjustment that you could use pAdjust values on the slider but you would need to create a way to limit it to the proper hd pool and set a maximum to the slider.

Return on investment effort might make this one a tough one to justify.
dungeonguru is offline   #3 Reply With Quote
Senior Member
Join Date: Sep 2017
Posts: 318

Old January 31st, 2020, 08:16 AM
Thanks for the help, guys. I'm inclined to agree it's a bit too much work for little return. The new Aberrant Dragonmark may have to be more up to the user to track, unfortunately. I'm not giving up yet, but it doesn't look good.

"Ooooooooh, he's tryin'!"
Fenris447 is offline   #4 Reply With Quote
Senior Member
Join Date: Sep 2017
Posts: 318

Old May 27th, 2020, 08:00 AM
So I've made a little progress. Permanently removing an HD is easy enough. The feat itself does not specify which HD should be reduced. It doesn't matter in a single-classed Hero, but multiclassing means you must pick from a Wizard's D6, a fighter's D10, etc. I can either write a script to find the smallest one and remove it, or allow the player to pick which one.

Dungeonguru, you're correct about how we manipulate the amount of HD used. I found it relatively simple with your guidance. I tried it two ways. With a tracked resource, we can have the ability to roll the HD reset on a short/long rest. On a long rest, however, Hero Lab properly grants the 1/2 of spent HD back to the character but also adds back an additional hit die when it resets this tracked resource.

So a level 8 fighter with 2 HD remaining (5 were used to heal, 1 was used for the feat) will get his 4 HD back + another for resetting the feat, as opposed to the 4 total he should receive from the long rest.

The alternative is to make the tracking an Activation amount. This will persist through short and long rests, and will require the user to manually manipulate it. It's better than nothing, and it's probably going to have to be what we do.

Permanently reducing the HP should also be easy enough. Since the player has to roll to determine the amount, it will have to be a number they enter into a field manually. Unless I'm really dumb, we should be able to pull that number into a script that then takes that HP away from the max.

So I think I'll be able to have some version of this, ugly as it might be, done in time for 2.5.

"Ooooooooh, he's tryin'!"
Fenris447 is offline   #5 Reply With Quote
Senior Member
Volunteer Data File Contributor
Join Date: Jan 2011
Location: Nowhere, Virginia
Posts: 3,596

Old May 27th, 2020, 01:47 PM
Set it to allow the player to pick which HD is removed. If the feat doesn't specify, there really are no rules per SRD covering this kind of thing... it's best to allow the user to decide.

You can create "Adjustments" for things as well, you might want to try creating an adjustment and bootstrap it to the feat so it automatically shows up when the feat is added by the user as a means of lowering hit points too. You'd want to make this adjustment not user selectable since it would be bootstrapped to the feat.


Please do not PM me to inquire about datafiles I coded "for personal use" such as Exalted, World of Darkness, AD&D, or Warhammer 40K Roleplaying. I appreciate your interest, but I do not own the Intellectual Property rights to these game systems. Nor do I have permission from any of the Publishers to distribute the data files. As such, I cannot distribute the work I have done with community on these files. They are "for personal use" only. Thank you.

I am far too busy these days to answer emails. If you message me here there is no guarantee I will get back to you at all.
RavenX is offline   #6 Reply With Quote
Senior Member
Join Date: Sep 2017
Posts: 318

Old May 27th, 2020, 02:37 PM
I think I've achieved all of that. There's a tag expression that allows the user to pick which sized hit die they want to reduce, limited to those on the Hero. They can choose the amount of HP for the permanent reduction, as well.

The only part I'm stuck on is resetting the HD on a long rest. I've got it working to where the player can indicate they've used an HD, pick which one they used, and the trkLeft for that HD pool will be reduced accordingly. But when they Hero takes a long rest, the total tracker for that HD pool still carries the reduction.

So hero with 8 HD uses 3 of those HD to heal himself, and another 1 HD for this feature. They have 4 left. They take a long rest. Normally they recover half their spent HD, which would put them back to 8. But the tracker for this feat still indicates that 1 HD has been used, so the HD shows as 7/8 available.

Conversely, let's say the same Hero used 4 HD to heal itself and another 2 HD for this feature, leaving 2 remaining. If it long rests, it should get 4 back. And let's say we set up the tracker to reset on a long rest. In that case, the long rest will give the Hero 4 HD back, then reset the tracker, which eliminates the other 2 reduction, and the hero will have a full 8 HD.

The only way it could work perfectly is if, when the player adds a number to the tracker, it reduces the HD's trkLeft and then immediately resets itself. Without resetting the reduction to the HD. This is where we go back to the idea of a button, which I don't think is doable without getting into Authoring Kit territory. And since the goal is to work within the bounds of LWD's 5e product, I think we're stuck.

"Ooooooooh, he's tryin'!"
Fenris447 is offline   #7 Reply With Quote
Senior Member
Join Date: Jan 2013
Posts: 267

Old September 12th, 2020, 07:56 PM
So, I'm making an ability that uses this same mechanic, costing a HD on activation. Pulling up the feat to check out what code ended up getting used...and for the life of me, I can't find it. I see the coding to add spells...but I'm not finding anything dealing with HD. Did this get nixed in the final version?
Brolthemighty is offline   #8 Reply With Quote
Senior Member
Join Date: Sep 2017
Posts: 318

Old October 12th, 2020, 08:27 AM
The version that uses an HD was never added to the Community Pack, because I didn't get it working perfectly before I took a break mid-June. I never figured out a way to get it to operate perfectly.

The problem is that anything that reduces HD is constantly being applied to the Hero. Whenever you activate an ability, it is constantly activated. So the reduction to the HD is constantly activated, constantly reducing the HD by 1. Resetting the ability on a rest restores that one HD, even if that HD was not actually recovered by the Hero as part of a long rest.

"Ooooooooh, he's tryin'!"
Fenris447 is offline   #9 Reply With Quote
Senior Member
Join Date: Jan 2013
Posts: 267

Old October 16th, 2020, 09:01 PM
I see. I appreciate the update thank you.
Brolthemighty is offline   #10 Reply With Quote

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -8. The time now is 03:21 AM.

Powered by vBulletin® - Copyright ©2000 - 2020, vBulletin Solutions, Inc.
wolflair.com copyright ©1998-2016 Lone Wolf Development, Inc. View our Privacy Policy here.