Structure of feats: energy immunity and AC


I am working on a potentially playable race for some module, that may or may not finish one day…
Creation of a race itself took me almost no effort, however when I began trying to enrich it with abilities, I have intended it to have, my way was impudently obstructed by some issues.

I know well, how to create entries in feat.2da file, however as I understand, effects, that each feat possess are not referenced by feat entries in that 2da, but rather opposite way - feat entries in 2da are referenced by some other file, that contains exact effects. This makes it rather inconvenient to reverse-engneer existing feats with similar effects, since their entries do not lead me to their actual effects or ways to tie newly created feat to that effect.

Creating weapon proficiencies, was relatively simple - it was only necessary to add corresponding dependencies into baseitem.2da

Currently what troubles me,h are two separate feats, I intend as racial, that would:

  1. Give character of this race certain amount of dodge AC (might be HD-dependent)

  2. Give character of this race immunity to certain energy type.

Would anyone be so kind to explain to me, where should I seek those effects, so I would be able to link them to feat entries in feat.2da, that I have already created?

I am grateful for suggestion, however racialtypes.2da and racialsubtypes.2da only contain register information for races, such as icons, links to names etc in dialog.tlk, link to appearance.2da and link to race_feat_???.2da in other words, only basic visula and interface data.

Sorry, I was in the process of deleting my post as I had misread yours and my answer was not useful. Yes, what I suggested won’t work.

I’ve taken a quick trip through my old work on for D20 Modern and, though I’m not sure this is what you want, the additional feats there are referenced through the Spells.2da table.

The feat entries in some cases reference a spell via the spells.2da to activate certain abilities, though naturally that necessitates writing the script.

Edit: Alternatively as those two are item properties you could simply use a script to add the properties to their PC skin should the PC possess those feats when first entering a module.

1 Like

I was thinking it too. However then I tried to look up for example what would be most similar feat to one of those two racials I was creating - Dodge, that gives +1 Dodge AC. However, I am unable to find it referenced in any way in spells.2da.

EDIT: This would indeed be a workaround, that allows to achieve this, however I would still rather pursue doing it in more orthodox way. I see this as a good learning opportunity too.

Besides, if I do it this way, then race would not be playable as intended outside that module/campaign.

The effect of lots of the passive feats such as Dodge are hard-coded I think, so you might not. I’ve a limited experience with NWN2 but I believe the same applies in that some aspects of code are beyond reach, so to speak.

Certainly when emulating the Modern feats it was necessary to run an on_enter script to repeatedly emulate the application of these modifiers from feats. Either that or store the properties on an item. The D20 Modern and PRC systems for NWN run around this approach, and the only way they are transferable is to have both the haks and scripts in place. Most PWs I know, which again is limited to NWN I admit, tended to use a conversation to choose a race and apply racial modifiers directly to the character that way.

Unfortunately yes, any such system limits the transfer of races which need the feats without modification of the module being played. I honestly don’t know another way and if anyone else does I’d welcome the opportunity to learn.

1 Like

good morning, Vanya is close

some things …

firstly, if you’re going to create rows in 2da files and may want it public someday, please find blank rows in the 2da(s) and register them at the nwn2 wiki.

secondly, it sounds like what you want is a Persistent feat. Some feats are hardcoded, some are merely flags that are checked during gameplay, etc. And feats that do something – ie, run a script – are generally called “spellabilities”; that’s because they’re spells in disguise. To deconstruct an already existing spellability, first get its row id in Feat.2da, then search for that # in the “FeatID” column of Spells.2da.

You’ll have to write a spellscript (the “ImpactScript” column in Spells.2da) and set the “IsPersistent” column in Feat.2da to “1” … the latter then automatically runs the spellscript for module-level events like OnEnter, OnRest, etc.

( it’s still early in the morning so take that with a grain of salt )

ps. useful info on Feat.2da and Spells.2da can be found at the wiki …

pps. The effects you want can be applied as effects by the spellscript.

EDIT: hm, since those effects (may) already exist as feats, it might be better to assign them as automatically gained feats by the class package, at character creation … instead of implementing new ones … but i don’t know as much about that just that it can be done …

1 Like

Indeed. I will look into spells.2da for more clues on how Kaedrin did it…

EDIT: Looks like, I found how, he did it, but it indeed relies on scripts. Alas, programming never was my strongest side…