This project provides a modified iprp_feats.2da file which increases the number of feats available as item properties from vanilla 63 to 818. New properties can be easily managed in the toolset and with scripting. With exception for few minor cost tweaks, changes introduced by this project are backward-compatible with vanilla NWN.
A demo module is provided.
CHANGELOG
1.1 (2018-10-14)
1.0 (2017-11-27)
DESCRIPTION
This project serves following purposes:
There are at least two other projects that have the same goal:
However this project was made from scratch and is not based on any of the above projects. It does not modify other files than iprp_feats.2da.
There are 818 feats that can be used as working item properties thanks to modified iprp_feats.2da file from this project. Previously (vanilla NWN), only 63 feats were available this way. With few exceptions, such as Ki Strike or Curse Song, all of these feats can be used immediately by all classes when added to a wearable item or to PC's creature hide.
One of this project's goals was to make those parameters of newly-added feats as balanced as possible, so they can seamlessly fit into game. For example, if a feat provides poison immunity, it will have the same cost as poison immunity property. Sometimes feats have no simple equivalents or they do not emulate other behaviors, so some artistic license had to be applied.
About 30% of total number of NWN feats was left out by this project. They are listed below together with reasons why they were omitted:
Feats added by this project are fully compatible with NWN version 1.69 in terms of NWScript API. This means you can use the IP_CONST_FEAT_* constants and they will work as intended.
In order to add new (and old) feats with scripts, pass as a parameter to ItemPropertyBonusFeat function IPRP_FEATS_PADDING + FEAT_* constant sum. IPRP_FEATS_PADDING is equal to 100 and can be found in iprp_feats.nss, a script from project's hak file.
An example showing how Keen Sense feat can be added as item property:#include "iprp_feats" // for IPRP_FEATS_PADDING, equal 100
AddItemProperty(
DURATION_TYPE_PERMANENT,
ItemPropertyBonusFeat(IPRP_FEATS_PADDING + FEAT_KEEN_SENSE),
oItem);
INSTALLATION
To install, extract contents of hak folder from project's archive into the hak folder of the game. Overwrite all files when asked.
Attachment | Size |
---|---|
![]() | 25.03 KB |
![]() | 9.16 KB |
A Fairy Tale |
80% |
Legends of Verssavis--Athena's Gambit--Chapter One |
77.5% |
Nihil Trilogy: Awakening |
92.5% |
Night Howls in Nestlehaven V1.17 |
93.3% |
Dark Avenger Chapter 2 |
91.7% |
Serene |
84% |
Crimmor |
98.6% |
The Crystalmist Campaign Chapter 2: The Lichway |
85% |
JEGs Training module |
100% |
From This Comes Strength |
98.9% |
Thank you for making this. I have been looking for something like this for a while.
I actually had it done almost exactly a year ago. If unsure what it does, try the demo module.
How is this different from iprp_feats in community patch?
Most differences are summarized in the description above.
This is just my opinion, but I believe that most feat cost parameter values I've chosen are more closer to the game in terms of balance. For example: poison immunity feat has the same cost as poison immunity property (1). I also made some of the epic / overpowered feats really expensive. Again, for example, Devastating Criticals have cost parameter 100, while 100% Energy Resistance have 500.
I also provide an include file with constants, though I do like how in community patch you can get the property by adding 100 to feat's constant. Maybe I'll redo my file in similar fashion.
I am writing because yes I think my system of 100+id is really smart (addign constants you'll hit the max identifier problem soon) and if you make it this way it will be compatible with CPP which is also plus :)
and yes the costs aren't balanced much in CPP didn't have time for that + CPP offers cost reduction/increase property so those not satisfied with cost can change it
OK, I'll try to use the 100+FEAT system. It will be in the next patch.
Could you elaborate on the max identifier issue? It shouldn't a problem as the new constants are in a script.
Perhaps you could also find some time to check the cost parameters here? There is about 100 "controversial" feats that cannot be emulated with other properties and therefore could use some review: circle kick, greater cleave, blind fight, etc.
there is a limit on how many new identifiers you can have between toolset start throwing errors when compiling scripts
identifiers are: constants and functions prototypes/declarations including those base from nwscript.nss. I don't know the exact number but if you put all missing constants from 1.69 into single library and will include that together with for example x2_inc_spells + x3_inc_horse you will hit the issue instantly.
Finally an update. Here's 1.1 changelog: