Lone Wolf Development Forums  

Go Back   Lone Wolf Development Forums > Hero Lab Forums > HL - d20 System

Notices

Reply
 
Thread Tools Display Modes
Trion
Junior Member
 
Join Date: Mar 2020
Posts: 13

Old October 15th, 2020, 02:08 AM
Hi,

I am trying to create the Planar Shepherd (PlS) class from Faiths of Eberron (p.105). None of the content from this book has been added to the pack as of yet.

As I have never created anything with the HLC editor, I already have several questions, and probably more to come. I don't intend to have you work on my behalf (even if this will maybe sound like it sometime), but, well, I have to learn how the editor works, at some point.


Here are my first questions :

1 / One of the pre-requisites for the PlS PrC is "Feats: Greensinger Initiate or , Nightbringer Initiate". None of these feats exist in the pack, so I have to add them. They both add a bunch of skills to the Druid Skill list, as well as a bunch of spells to the Druid Spell list.
- I think that, for the feat to actually add skills/spells to the PC's lists, I have to add an "Eval Script" when I create it, but I am a bit lost as to what it should contain. Should it only be some iterations of "skill = "ClassSkill.kSkillCode"" ?
- Also how to write the code to add a spell to the spell list ?
- An other issue is that the feats add the skills/spells to the DRUID Spell List (not the character's spell list). I think it means that these feats have no effect whatsoever if the character is not at least a lvl1 Druid. How could this be implemented ?
- I have figured out how to add the skills lvls and WIld SHape pre-requisites for the PrC, but I didn't find how to work out a pre-requisite of one feat OR another one. How should I go about this ?

2 / The PlS spellcasting abilities state that "at each level, you gain new spells perday and an increase in caster level as if you had also gained a level in a divine spellcasting class to which you belonged before adding the prestige class level".
- From watching how other PrCs that work the same way are done in the editor, I gather that I have to use the "Extra Magic/Power Level" from the "Miscellaneous Details" part in the Class tab of the editor. Is that right ?
- How do I make sure that the player can only add the extra lvls to a divine spellcasting class he already has levels in ?

3 / It is also stated that "your planar shepherd levels stack with your druid levels for the purpose of determining the abilities of your animal companion". Here there are two way things can go down. Either the PC was a druid prior to becoming a PlS, or he wasn't.
- If he was, I guess that the "Extra Magic/Power Levels" from the previous question should do the trick ?
- If he wasn't, well I guess he just doesn't have an animal companion, as it is not stated that taking PlS levels GRANT the ability to have one. This is more of a ruling issue, but I'd like your input on it anyway.

4 / Here is a question about ressources that don't yet exist in the community pack. The first special ability of the PlS PrC is "Planar Attunement (Ex): At 1st level, you must choosea single plane of existence other than the Material Plane, such as Irian the Eternal Day. Once selected, your planar shepherd features are forever attuned to this plane. Youcannot choose a plane with an alignment trait opposedto any component of your own alignment". The descriptions of the existing planes and their characteristics can be found in Eberron Campaign Settings (p.92). Idealy, at PlS lvl1, the player should have access to a drodown menu to choose the plane he wants to attune with.
- How can I add the different planes and their effects in the editor ? I don't really see a fitting catergory.
- How can I ask the user to chose a plane to attune to an PlS lvl 1 ?


Well, this is all I got for now. HeroLab is a great tool, and now that I've fiddled a bit in the editor, I really see how much work it has been to create this community pack. This is a fun project, though, and I'm pretty sure I'll try my hand at some other classes/races, once I'm done with this one

Thank you very much for your help ! Have a nice day !
Trion is offline   #1 Reply With Quote
Sendric
Senior Member
 
Join Date: Jul 2010
Posts: 2,904

Old October 15th, 2020, 05:14 AM
Quote:
Originally Posted by Trion View Post
Hi,

I am trying to create the Planar Shepherd (PlS) class from Faiths of Eberron (p.105). None of the content from this book has been added to the pack as of yet.

As I have never created anything with the HLC editor, I already have several questions, and probably more to come. I don't intend to have you work on my behalf (even if this will maybe sound like it sometime), but, well, I have to learn how the editor works, at some point.
Nothing like taking on a huge project for your first dive into HL.
There's a lot to unpack so I'll do the best I can.

Quote:
Originally Posted by Trion View Post
Here are my first questions :

1 / One of the pre-requisites for the PlS PrC is "Feats: Greensinger Initiate or , Nightbringer Initiate". None of these feats exist in the pack, so I have to add them. They both add a bunch of skills to the Druid Skill list, as well as a bunch of spells to the Druid Spell list.
- I think that, for the feat to actually add skills/spells to the PC's lists, I have to add an "Eval Script" when I create it, but I am a bit lost as to what it should contain. Should it only be some iterations of "skill = "ClassSkill.kSkillCode"" ?
- Also how to write the code to add a spell to the spell list ?
- An other issue is that the feats add the skills/spells to the DRUID Spell List (not the character's spell list). I think it means that these feats have no effect whatsoever if the character is not at least a lvl1 Druid. How could this be implemented ?
- I have figured out how to add the skills lvls and WIld SHape pre-requisites for the PrC, but I didn't find how to work out a pre-requisite of one feat OR another one. How should I go about this ?
Adding spells to a spell list is pretty easy. If the spells already exist, you can apply a new class tag to them (ie sClass.Greensinger) using the "Extend Thing" subtab in the General tab of the editor. If they don't exist, create them and add the same tag. You can then apply that tag to the class that gains access to those spells using an eval script, like this:

Code:
  perform hero.childfound[cHlpXXX].assign[sClass.Greensinger]
XXX = the abbreviation you created when you created the Planar Shepherd.

To add class skills, you can use a similar script:

Code:
  perform hero.childfound[cHlpXXX].assign[ClassSkill.XXXXX]
XXXX = skill thingid for skill being added.

There are examples of these throughout the community set if you know where to find them. I like to use a search tool (is windows grep) to search through the directory for specific strings. I recommend you do the same.

Quote:
Originally Posted by Trion View Post
2 / The PlS spellcasting abilities state that "at each level, you gain new spells perday and an increase in caster level as if you had also gained a level in a divine spellcasting class to which you belonged before adding the prestige class level".
- From watching how other PrCs that work the same way are done in the editor, I gather that I have to use the "Extra Magic/Power Level" from the "Miscellaneous Details" part in the Class tab of the editor. Is that right ?
- How do I make sure that the player can only add the extra lvls to a divine spellcasting class he already has levels in ?
You don't really need to. The only classes that will appear as available are those already on the character. If you really must, you can try modifying the mlExpr1 field on cMagicLev. Not sure if I've ever done this, but the script would look like this:

Code:
  hero.childfound[cMagicLev].field[mlExpr1].text = "Hero.Divine"
Note that timing is important for all scripts. I would expect this one to be late, and the previous ones for skills and spells to be somewhat early. The default timing should generally not be used as a lot already happens at that time.

Quote:
Originally Posted by Trion View Post
3 / It is also stated that "your planar shepherd levels stack with your druid levels for the purpose of determining the abilities of your animal companion". Here there are two way things can go down. Either the PC was a druid prior to becoming a PlS, or he wasn't.
- If he was, I guess that the "Extra Magic/Power Levels" from the previous question should do the trick ?
- If he wasn't, well I guess he just doesn't have an animal companion, as it is not stated that taking PlS levels GRANT the ability to have one. This is more of a ruling issue, but I'd like your input on it anyway.
The Extra Magic/Power Levels only increases magic and psionic power levels of the chosen class. It does *not* increase class abilities and will not stack with Druid class levels for the purposes of improving the animal companion. There are other PrC's that do this. You should look for those and see if you can find the script that does what you're looking for.

Quote:
Originally Posted by Trion View Post
4 / Here is a question about ressources that don't yet exist in the community pack. The first special ability of the PlS PrC is "Planar Attunement (Ex): At 1st level, you must choosea single plane of existence other than the Material Plane, such as Irian the Eternal Day. Once selected, your planar shepherd features are forever attuned to this plane. Youcannot choose a plane with an alignment trait opposedto any component of your own alignment". The descriptions of the existing planes and their characteristics can be found in Eberron Campaign Settings (p.92). Idealy, at PlS lvl1, the player should have access to a drodown menu to choose the plane he wants to attune with.
- How can I add the different planes and their effects in the editor ? I don't really see a fitting catergory.
- How can I ask the user to chose a plane to attune to an PlS lvl 1 ?
I would use the Custom Abilities feature. Create each plane as a custom ability available to your class and give your class the choice of one at 1st level. This will work much like a Wizard's specialty.

Quote:
Originally Posted by Trion View Post
Well, this is all I got for now. HeroLab is a great tool, and now that I've fiddled a bit in the editor, I really see how much work it has been to create this community pack. This is a fun project, though, and I'm pretty sure I'll try my hand at some other classes/races, once I'm done with this one

Thank you very much for your help ! Have a nice day !
I hope this all helps get you on the right track. The best way to learn is to do and to try and figure things out. Good luck and feel free to ask more questions.
Sendric is offline   #2 Reply With Quote
Trion
Junior Member
 
Join Date: Mar 2020
Posts: 13

Old October 16th, 2020, 12:17 AM
Hi Sendric,

Thank you VERY MUCH for the detailed write-up. I am going over it at the moment, and I think it should really help me.

Upon closer inspection, it looks like the Spontaneous Casting ability of the Druid for the Summon Nature's Ally spell (which is a special ability of the class from lvl1) does not appear anywhere in the editor. It is a problem because the Greensinger Initiate feat has it as a prerequisite. How could I circumvent this issue ? Or am I missing something ?

EDIT : It looks like the Greensinger Initiate feat is alreay in the pack, after all. In Eberron Campaign Setting, as it should be, I just didn't see it. It also looks like it it completely wrong. The list of spells it adds to the druid spell list is completely off. I am going to write my own version of the feat, which will feature the right spells. It answered my question about the Spontaneous Casting, though.

EDIT 2 : Well, the list of spells written in the description text is completely off, indeed. But the spells are the right ones in the EvalScript. So...

Last edited by Trion; October 16th, 2020 at 12:40 AM. Reason: Additional infos
Trion is offline   #3 Reply With Quote
Trion
Junior Member
 
Join Date: Mar 2020
Posts: 13

Old October 16th, 2020, 02:53 AM
So, I managed to get both new feats (Greensinger Initiate and Nightbringer Initiate) to add skills to the Druid's class skills using the code I found in the other version of the Greensinger Initiate feat :
Code:
~ Add a class skill
      var index as number
      index = hero.child[cHelpDrd].assign[ClassSkill.kBluff]
      index = hero.child[cHelpDrd].assign[ClassSkill.kHide]
      index = hero.child[cHelpDrd].assign[ClassSkill.Perform]
It works, I tested it in the character creator.

However, I did not manage yet to get the Spells added to the spell lists. The script used in the previous version of the Greensinger feat throws an "error in string expression" at the compilation.

Here is an exemple the code :
Code:
 perform [spChaPer1].assign[sClass.Druid]
I also tried the solution you advised me, using the "Extend Thing" subtab, but didn't get more success. Here is an exemple of the extensions I created and the error that the compilation gives me :


The "fNightbrInit" tag is the unique ID associated to the feat I created.
Here is the code I put in the Eval Script :
Code:
perform hero.childfound[cHlpDrd].assign[sClass.fNightbrInit]
The objective is to get the feat I created (fNightbrInit) to add the spells to the Druid Spell List. It looks like I misunderstood something in your message, but I don't see what.

Any input on this ?
Trion is offline   #4 Reply With Quote
Sendric
Senior Member
 
Join Date: Jul 2010
Posts: 2,904

Old October 16th, 2020, 05:11 AM
Quote:
Originally Posted by Trion View Post
Hi Sendric,

Thank you VERY MUCH for the detailed write-up. I am going over it at the moment, and I think it should really help me.

Upon closer inspection, it looks like the Spontaneous Casting ability of the Druid for the Summon Nature's Ally spell (which is a special ability of the class from lvl1) does not appear anywhere in the editor. It is a problem because the Greensinger Initiate feat has it as a prerequisite. How could I circumvent this issue ? Or am I missing something ?

EDIT : It looks like the Greensinger Initiate feat is alreay in the pack, after all. In Eberron Campaign Setting, as it should be, I just didn't see it. It also looks like it it completely wrong. The list of spells it adds to the druid spell list is completely off. I am going to write my own version of the feat, which will feature the right spells. It answered my question about the Spontaneous Casting, though.

EDIT 2 : Well, the list of spells written in the description text is completely off, indeed. But the spells are the right ones in the EvalScript. So...
You can either ignore the pre-req or make the pre-req one level of Druid.

I'll take a look at the Greensinger Initiate feat. Sounds like there's a bug there in the description if nothing else.
Sendric is offline   #5 Reply With Quote
Sendric
Senior Member
 
Join Date: Jul 2010
Posts: 2,904

Old October 16th, 2020, 05:18 AM
Quote:
Originally Posted by Trion View Post
So, I managed to get both new feats (Greensinger Initiate and Nightbringer Initiate) to add skills to the Druid's class skills using the code I found in the other version of the Greensinger Initiate feat :
Code:
~ Add a class skill
      var index as number
      index = hero.child[cHelpDrd].assign[ClassSkill.kBluff]
      index = hero.child[cHelpDrd].assign[ClassSkill.kHide]
      index = hero.child[cHelpDrd].assign[ClassSkill.Perform]
It works, I tested it in the character creator.
This is an older technique and not the preferred method. It's better to use the perform function. That said, if this feat is supposed to add class skills and it doesn't then it's a bug and I'll take a look at getting it fixed.

Quote:
Originally Posted by Trion View Post
However, I did not manage yet to get the Spells added to the spell lists. The script used in the previous version of the Greensinger feat throws an "error in string expression" at the compilation.

Here is an exemple the code :
Code:
 perform [spChaPer1].assign[sClass.Druid]
You can't assign a tag to a spell like this. You can only manipulate things that are on the character. Just took a look at the feat provided in the current community set. Please note the '~' at the beginning of each line. This tells HL to ignore the code. Looks like whoever tried to add this feat wasn't able to figure out how to get spells added to the Druid's list. I will fix this for the community set.

Quote:
Originally Posted by Trion View Post
I also tried the solution you advised me, using the "Extend Thing" subtab, but didn't get more success. Here is an exemple of the extensions I created and the error that the compilation gives me.

The "fNightbrInit" tag is the unique ID associated to the feat I created.
Here is the code I put in the Eval Script :
Code:
perform hero.childfound[cHlpDrd].assign[sClass.fNightbrInit]
The objective is to get the feat I created (fNightbrInit) to add the spells to the Druid Spell List. It looks like I misunderstood something in your message, but I don't see what.

Any input on this ?
On the feat fNightbrInit, add the tag sClass.fNightbrInit. This should "define" it for HL. You can then extend that tag to whichever spells you need to have it. Then your script should work.

Last edited by Sendric; October 16th, 2020 at 05:47 AM.
Sendric is offline   #6 Reply With Quote
Sendric
Senior Member
 
Join Date: Jul 2010
Posts: 2,904

Old October 16th, 2020, 06:06 AM
I've updated the Greensinger Initiate feat. I'll attach it here so you can see what I did.
Attached Files
File Type: zip Eberron - Campaign Setting.zip (118.7 KB, 2 views)
Sendric is offline   #7 Reply With Quote
Trion
Junior Member
 
Join Date: Mar 2020
Posts: 13

Old October 16th, 2020, 06:36 AM
Thanks for your help !

Both feats (Greensinger Initiate and Nightbringer Initiate) are now fully fonctional. All of the pre-requisites for the Planar Shepherd PrC are working correctly as well.

Just to be clear : there is already a version of the Greensinger Initiate feat in the pack (in Eberron Campaign Setting). Its description is wrong (wrong spells listed), the eval script that adds skill to the druid skill list uses the "older" technique discussed in your last message, and the eval script that should add spells to the druid spell list is throwing errors during compilation (so it is turned into commentaries with ~). The new version you just helped me create is working as intended.
[EDIT : I wrote this message without seeing that you updated the feat and attached it to this thread]

I am now working towards getting the Planar Shepherd levels to stack with the Druid levels for the purpose of determining the abilities of the animal companion. I looked through some other PrC that have the same feature, and I often found this piece of script :

Code:
var bonus as number
bonus = field[xTotalLev].value
~Only do stuff if the animal companion is live
if (hero.childlives[cAnimComp] <> 0) then
  hero.childfound[cAnimClass].field[CompClLev].value += bonus
  hero.childfound[cAnimComp].field[CompLevBas].value += bonus
Endif
Unfortunately it seems to do nothing when I add it to as an eval script to a Class Special linked to the Planar Shepherd PrC.
If I then create a Druid 5 / Planar Shepherd 2, I should have an equivalent lvl for the Animal Companion of 7, which should grant 4 bonus HD. I still only see 2 bonus HD, corresponding to just a lvl 5 Druid.
It is worth noting that if I replace the 2 lvls of Planar Shepherd with 2 lvls of eg. Animal Lord (the class I stole the script from), it still does nothing. If I make a Druid 7, I indeed see the 4 bonus HD on the animal companion.

I doubt that several classes use a script that does straight nothing. So I must have overlooked something, maybe in the way I should link the "class special" to the "class" ? I did activate the class special in the "Class Special Abilities" menu in the "Class" subtab.

EDIT : It is working now. I am using this piece of script :
Code:
~Only do stuff if the animal companion is live, add to Anim Comp levels
doneif (hero.childlives[cAnimComp] = 0)
hero.childfound[cAnimComp].field[CompLevAdj].value += #levelcount[PlanShep]
hero.childfound[cAnimClass].field[CompClLev].value += #levelcount[PlanShep]
I also added the Classes.PlanShep tag to the Planar Shepherd Class main tab.

Last edited by Trion; October 16th, 2020 at 09:29 AM. Reason: It is working now !
Trion is offline   #8 Reply With Quote
Sendric
Senior Member
 
Join Date: Jul 2010
Posts: 2,904

Old October 16th, 2020, 12:13 PM
Quote:
Originally Posted by Trion View Post
Thanks for your help !

Both feats (Greensinger Initiate and Nightbringer Initiate) are now fully fonctional. All of the pre-requisites for the Planar Shepherd PrC are working correctly as well.

Just to be clear : there is already a version of the Greensinger Initiate feat in the pack (in Eberron Campaign Setting). Its description is wrong (wrong spells listed), the eval script that adds skill to the druid skill list uses the "older" technique discussed in your last message, and the eval script that should add spells to the druid spell list is throwing errors during compilation (so it is turned into commentaries with ~). The new version you just helped me create is working as intended.
[EDIT : I wrote this message without seeing that you updated the feat and attached it to this thread]

I am now working towards getting the Planar Shepherd levels to stack with the Druid levels for the purpose of determining the abilities of the animal companion. I looked through some other PrC that have the same feature, and I often found this piece of script :

Code:
var bonus as number
bonus = field[xTotalLev].value
~Only do stuff if the animal companion is live
if (hero.childlives[cAnimComp] <> 0) then
  hero.childfound[cAnimClass].field[CompClLev].value += bonus
  hero.childfound[cAnimComp].field[CompLevBas].value += bonus
Endif
Unfortunately it seems to do nothing when I add it to as an eval script to a Class Special linked to the Planar Shepherd PrC.
If I then create a Druid 5 / Planar Shepherd 2, I should have an equivalent lvl for the Animal Companion of 7, which should grant 4 bonus HD. I still only see 2 bonus HD, corresponding to just a lvl 5 Druid.
It is worth noting that if I replace the 2 lvls of Planar Shepherd with 2 lvls of eg. Animal Lord (the class I stole the script from), it still does nothing. If I make a Druid 7, I indeed see the 4 bonus HD on the animal companion.

I doubt that several classes use a script that does straight nothing. So I must have overlooked something, maybe in the way I should link the "class special" to the "class" ? I did activate the class special in the "Class Special Abilities" menu in the "Class" subtab.
Thanks. Actually, I think something changed in the timing at some point after those scripts were written. I discovered prior to the last update that I needed to modify the scripts on the Arcane Hierophant to make it stack with the Druid. I assumed it was something I'd done wrong with the original scripts, but based on your report I wonder if it was something inherently changed in the code base. I'll take a look at the other PrC's and see what I can figure out.

Quote:
Originally Posted by Trion View Post
EDIT : It is working now. I am using this piece of script :
Code:
~Only do stuff if the animal companion is live, add to Anim Comp levels
doneif (hero.childlives[cAnimComp] = 0)
hero.childfound[cAnimComp].field[CompLevAdj].value += #levelcount[PlanShep]
hero.childfound[cAnimClass].field[CompClLev].value += #levelcount[PlanShep]
I also added the Classes.PlanShep tag to the Planar Shepherd Class main tab.
Nice. I'm not really sure what you mean with that last sentence though. Classes.PlanShep is a tag that should have been created when you first made the class. What do you mean you added it to the main tab?
Sendric is offline   #9 Reply With Quote
Trion
Junior Member
 
Join Date: Mar 2020
Posts: 13

Old October 16th, 2020, 02:57 PM
Quote:
Originally Posted by Sendric View Post
Nice. I'm not really sure what you mean with that last sentence though. Classes.PlanShep is a tag that should have been created when you first made the class. What do you mean you added it to the main tab?
You're right, it got created when I first made the class, I just got lost in my own track of thought when I wrote my answer Just forget about the last part of my message.

Now, onto the other special abilities of the Planar Shepherd ! I'll probably have more questions, but it'll wait for monday. Once again, thank for your help. Have a nice weekend !

Trion

EDIT : on a totaly different topic, do you think the API of HLO going public could prompt the creation of a d20/3.5 pack similar to the one for HLC, but for HLO ?

Last edited by Trion; October 16th, 2020 at 03:00 PM.
Trion is offline   #10 Reply With Quote
Reply

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:10 PM.


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