How can I restrict Turn Undead to a specific domain?

I’m in the process of working up a Greco-Roman type religion for my module. I want to restrict the Turn Undead ability of clerics to only those who take the Death domain. This is because Pluto-Hades is the God of the Dead and I don’t think that any other Greco-Roman deities should be able to turn undead.

Any ideas on how to make this possible, other than forcing all clerics to be devoted to the Pluto/Hades cult?

Wouldn’t Apollo’s priests be able to turn undead also as he is the God of the Sun? It would only make since, since most undead can not function in direct sunlight. Just a question I’m not trying to step on your toes.

Depends how exactly you want to restrict it.

If you are fine with every cleric (and paladin) getting turn undead feat, then all you need to do is to modify nw_s2_turndead script.

As for how to determine domain, while there is not function GetDomain, you can check if player has domain-based feat.
You can find the feats assigned to domains in domains.2da file.
However, you need to workaround fact that GetHasFeat returns 0 for feats that has specified number of uses per day and all of them were depleted. To workaround this you need to use GetKnowsFeat function

int GetKnowsFeat(int nFeat, object oCreature)
if(GetHasFeat(nFeat,oCreature)) return TRUE;
int bHasFeat = GetHasFeat(nFeat,oCreature);
return bHasFeat;

this function is in 70_inc_main if you use CPP 1.72, otherwise add it into your include and use instead GetHasFeat.

Now, if you would want to avoid granting the feat to clerics that would be more complicated. That would depend on whether you are building SP, MP for NWN:EE or 1.69 so I won’t post details unless y\ou specify that first (and confirm you want to do it this way).

1 Like

That’s a fair question and not stepping on my toes but thanks for the qualifier. In my opinion, the presumption that clerics of Apollo could turn undead comes from our modern logic of undead hating the light therefore Apollo (who is sometimes conflated with Helios) as a solar deity should be able to turn undead. However, in my research into Roman and Greek myths, it seems to me that the ancients did not think along those lines. For that matter the undead don’t figure much into their writings. What I’ve been able to piece together is that necromancers could summon the dead and this angered Pluto-Hades. Apparently he was quite adamant about the dead not leaving without permission and would most severely punish those who helped the dead escape his realm. Therefore my interpretation is along the lines of Pluto-Hades and other Chthonic deities (e.g. Hecate/Hekate) had dominion over the (un)dead but none others. That there is no positive nor negative energy per se, or if there is, undead are not creatures of negative energy vulnerable to positive energy attacks (sun domain).

1 Like

Thanks @Shadooow. I was thinking along the exact same lines although I did not know about GetHasFeat returning 0 if all the uses were depleted.

I’m reluctant to change the Turn Undead feat so that it has the Death Domain as a prerequisite because I want the clerics of Mars-Ares and Minerva-Athena to be able to take the Divine Might and Divine Shield feats.

I guess I was hoping was for a way for all others to not see the Turn Undead feat instead of having to explain that it can only be used by Clerics with the Death domain. But it’s not a big deal to change the turnundead script and add a new tlk entry (and readme) to explain the change.

Oh and this would be strictly for single-player modules.

Can you modify the Death domain in domains.2da so that it grants the Turn Undead feat, and at the same time modify the cleric class so that it DOESN’T get the Turn Undead feat for free?

You would also have to modify the paladin class (if you are using it).

I don’t think there are other ways to get the feat, so that would solve your problem, I think.

1 Like

If this is the case then the best way to do that would probably be what Artemis suggested. If you would want to also preserve original death domain feat then you would have to use bonus feat and skin solution instead. That would require to add turn undead into iprp_feats.2da (or make your module require CPP as CPP has all feats in iprp_feats.2da already - but in this case you want to have it working regardless whether player has CPP or not so I suggest to take iprp_feats.2da from CPP and add it into module haks) and then add ItemPropertyBonusFeat with the turn undead to cleric entering your module with feat 310 (death domain).

Also the Turn undead feat must be changed in cls_feat_cler.2da in this way:

14 TurnUndead 294 0 -1 1

1 Like

Thanks for all the suggestions! To summarize, it seems the options are:

  1. Change the Turn Undead script so that it only runs for clerics with the death domain feat (and change the feat description in a custom .tlk). The drawback is that all PC clerics will see this feat. NPCs can have this feat manually removed.

  2. Remove the turn undead feat from cls_feat_clr.2da, add same feat as a property to iprp_feats.2da, and then add it to the PC hides of entering characters who have the death domain or war domain. Plus change the script and description as above.

I need to do some testing, but I suspect that if I disable Turn Undead for the war clerics, then Divine Might & Shield won’t work since the number of uses depends on the number of Turn Undead uses available. If this is the case then I’ll have to enable Turn Undead for the war domain or scrap Divine Might & Shield.

OR… I could assign a penalty of -99 to the War domain so that Turn Undead fails if the players tries to use it but that penalty should have no impact on Divine Might & Shield. But this still leaves the problem of NPC war clerics trying to turn undead.

Any other thoughts, ideas, or suggestions?

[On a parenthetical note, once I sort all this out I’ll determine what to do with the paladin. If I allow paladins, they would all be dedicated to the cult of Minerva-Pallas-Athena (war & protection).]