• 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

Puzzler (companions and familiars)

Bluephoenix

Well-known member
So I was working through the remaining Races of the Wild material, and ran across a PrC feature I can't figure out how to implement, or even where to start.

The Arcane Hierophant has a class feature called companion familiar where the druid/ranger animal companion gains the int score and derived abilities of the familiar, while retaining all the benefits of being an animal companion.

as HL does companions and familiars as separate entities with thier own derived templates, I'm at a loss as to how to integrate the 2 as a single entity.

the final companion familiar gains the following combined effects:
Arcane heirophant level + druid/ranger for animal companion effects.
- Bonus HD, str/dex, and natural armor derived from animal companion table
Acrance hierophant level + spellcasting level for familiar effects
- int bonus, special abilities derived from familiar table.

help would be greatly appreciated, if it is not possible to implement I would not be greatly surprised, as it is one of the most complicated class features I have encountered.
 
I looked into this a while back. I don't have a real solution, but what I did was create a template to add to the animal companion the familiar effects. I was working on it Pathfinder, and I was still learning how to do scripts at the time so it's probably incomplete. The only other thing I could think of would be to make new Animal Companions that have the familiar benefits, but I haven't looked into doing that, and it seems like a lot more work since you'd have to create an all new set of companions.

For reference, here's the brief dialogue I had with Mathias about it:
http://forums.wolflair.com/showthread.php?t=11094&highlight=arcane+heirophant
 
Last edited:
I looked into this a while back. I don't have a real solution, but what I did was create a template to add to the animal companion the familiar effects. I was working on it Pathfinder, and I was still learning how to do scripts at the time so it's probably incomplete. The only other thing I could think of would be to make new Animal Companions that have the familiar benefits, but I haven't looked into doing that, and it seems like a lot more work since you'd have to create an all new set of companions.

For reference, here's the brief dialogue I had with Mathias about it:
http://forums.wolflair.com/showthread.php?t=11094&highlight=arcane+heirophant

thanks, I'll give that a dig and see if I can get anywhere with it, though hopefully that won't stop others from chiming in with ideas.
 
after working through the idea some more, I agree that a template is probably the best way to go instead of creating a new minon.

the thing I'm having trouble wrapping my head around is how the minion system works and how the animal companion/familiar inherits its effects, so that I can possibly reference this in the template, and also have a better idea of how to apply the template automatically from the class. (digging through the SRD source hasn't yielded much insight)
 
Yea, I never did figure that out. I'm pretty sure it's buried deep in the code somewhere. Not sure how to automatically add a template. Presumably that's something you would put in the class special Familiar Companion.
 
A template can be bootstrapped like anything else.

(Although this might require adding a template from the master to the minion, which isn't possible)
 
Is it possible to add a special ability to a minion from the master and then have that special ability bootstrap a template?
 
So, the only way to do it automatically is if the minion did it based on something that happened with the master, which of course brings us back to creating all new minions. Too bad.
 
So, the only way to do it automatically is if the minion did it based on something that happened with the master, which of course brings us back to creating all new minions. Too bad.

Couldn't you ReplaceID something in the minion that checked a tag on the master and if so, performed the task?
 
Couldn't you ReplaceID something in the minion that checked a tag on the master and if so, performed the task?

still would require modifiying the minion code.

the inherent problem is that the script to add the familiar bonuses to the animal companion has to come from the PrC, but target the animal companion minion.

really all I need is a way to assign the minion a template inside a script on the master. (sort of like adding properties to a weapon pick) I cannot do anything directly on the minion because it is auto-generated from the code and not something I can modify in user files.
 
still would require modifiying the minion code.

It might be because I don't know what I'm doing.

But why couldn't you modify cAnimClass found in source/srd_minions.dat with a script using ReplaceID to replace cAnimClass with your script. So your script gets bootstrapped into the minion instead of cAnimClass and from there check things in the master and modify accordingly?

It appears to be loaded by the minion:
<thing
id="cAnimClass"
name="Animal Companion"
compset="CompClHelp"

Ok cAnimClass is on the hero, but cAnimComp contains the minion that is created.
I replace id on cAnimComp, and added a bootstrap to Immunity to Disease on the minion.
So when I created a badger AC, it had immunity to disease bootstrapped.

So you can make code to modify the behaviour, the only caveat is you can't do it inside the editor.
You must hand craft the xml code by making things in the editor and then copying and pasting it.

Here is the example:
http://heathers.stdio.com/~risner/Min.user
 
Last edited:
It might be because I don't know what I'm doing.

But why couldn't you modify cAnimClass found in source/srd_minions.dat with a script using ReplaceID to replace cAnimClass with your script. So your script gets bootstrapped into the minion instead of cAnimClass and from there check things in the master and modify accordingly?

It appears to be loaded by the minion:
<thing
id="cAnimClass"
name="Animal Companion"
compset="CompClHelp"

Ok cAnimClass is on the hero, but cAnimComp contains the minion that is created.
I replace id on cAnimComp, and added a bootstrap to Immunity to Disease on the minion.
So when I created a badger AC, it had immunity to disease bootstrapped.

So you can make code to modify the behaviour, the only caveat is you can't do it inside the editor.
You must hand craft the xml code by making things in the editor and then copying and pasting it.

Here is the example:
http://heathers.stdio.com/~risner/Min.user

the big problem is that if I modify the base minion, that cannot be pushed out as part of our datafiles.

when lonewolf created the base SRD datafiles it has a sort of "self check" to make sure that everything is as it should be with the base version, flags them as read only to the editor, and are checked on launch for changes.

also, if I add to the base minion i risk breaking much more than the single PrC I'm dealing with, and keeping the code isolated is simply good practice.
 
the big problem is that if I modify the base minion, that cannot be pushed out as part of our datafiles.

I think I'm confused.

I worked up a ReplaceID version of the Animal Companion code, that worked. It was able to modify the minion, but didn't change any of the files in HeroLab. It only used one .user file. Like you said, that user file showed as blank when loaded into the editor. But it successfully compiled and replaced the base SRD code.

Maybe you are opposed to doing something like this. If so, that is fine and I understand it. I guess I was just suggesting a way to inject code into the minion, in a way that would work.
 
I think there's some confusion here.

BluePhoenix, he's not suggesting changing the animal companions. You can use the replace ID to change code for all the companions that would allow you to automatically add the template. This would remain in effect regardless of updates from HL.
 
I think there's some confusion here.

BluePhoenix, he's not suggesting changing the animal companions. You can use the replace ID to change code for all the companions that would allow you to automatically add the template. This would remain in effect regardless of updates from HL.

ah, I see

had to shelve this project and any other Hl stuff for the moment, rough month at work (everyone seems to have simultaneously lost their minds)
 
Sorry to hear that. While wandering through the pathfinder stuff I might have found some useful code for anyone attempting this. It is from the Favored Class Option: Half-Orc Ranger:

~ If there's no Companion, there's nothing we can do
doneif (hero.hasminion[AnimComp] = 0)

hero.minion[AnimComp].child[Totals].field[tHP].value += field[abValue].value

The important bit is the "hero.minion[AnimComp].child[]" which allows your Eval script on the hero (for example a feat or class special) to affect things on the animal companion "minion".

I think anyway, haven't tested it myself and I did find it in Pathfinder, so it might rely on something not yet added to d20. Just thought I would put it out there.
 
It might be because I don't know what I'm doing.

But why couldn't you modify cAnimClass found in source/srd_minions.dat with a script using ReplaceID to replace cAnimClass with your script. So your script gets bootstrapped into the minion instead of cAnimClass and from there check things in the master and modify accordingly?

It appears to be loaded by the minion:
<thing
id="cAnimClass"
name="Animal Companion"
compset="CompClHelp"

Ok cAnimClass is on the hero, but cAnimComp contains the minion that is created.
I replace id on cAnimComp, and added a bootstrap to Immunity to Disease on the minion.
So when I created a badger AC, it had immunity to disease bootstrapped.

So you can make code to modify the behaviour, the only caveat is you can't do it inside the editor.
You must hand craft the xml code by making things in the editor and then copying and pasting it.

Here is the example:
http://heathers.stdio.com/~risner/Min.user

I used your script today, Risner. Just wanted to say thanks for keeping it around. :)
 
Back
Top