Ever felt that the NWN has too small pool of useful itemproperties? So did I. This is a collection of brand new custom properties designed and implemented by me. I got mostly inspired from diablo2 but there are some NWN specific properties that I previously created for Arkhalia PW. Currently contains 35 custom itemproperties and new options for Immunity Specific and On-Hit vanilla properties (+new itemproperties and expanded choices from community patch). Most of them doesn't require any additional mods/patches but some will require either Community Patch 1.72 or nwnx_patch/nwncx_patch to work properly. Contains demo module where you can test some premade items.
This project is tailored for module builders. This is not a package for players. No vanilla items were changed, all this gives are extra options when making new items in toolset.
Compatibility
Because I suspected that this package will only serve to rip-off interested stuff and or just get inspiration I didn't bother to make it compatible with anything. Currently used lines in 2das/tlk will make this compatible with CEP2 if you decide to copy this into your module, it will however not be compatible with PRC, some of the itemproperties with this package are using same lines as new itemproperties in PRC - you will have to choose which you want. This project should work fine under NWN:EE with exception that itemproperties that requires nwnx_patch will not work since this plugin doesn't work for NWN:EE.
Installation
Note this project is meant for builders and thus I will expect some basic modding knowledge and won't be adding detailed steps for some actions required to install this.
1) Add sh_itemprops.hak and sh_itemprops.tlk into your module. If your module has haks that containst itempropdef.2da/itemprops.2da you need to merge them. If your module has custom tlk you need to merge them.
2) Import sh_itemprops.erf into your module.
3a) Add this code into OnPlayerEquip event:
CheckNewItemPropertiesItem(oPC,oItem,IP_EVENT_EQUIP);
3b) Add this code into OnPlayerUnEquip event:
CheckNewItemPropertiesItem(oPC,oItem,IP_EVENT_UNEQUIP);
3c) Add this code into OnPlayerRespawn event:
CheckNewItemProperties(oRespawner,IP_EVENT_RESPAWN);
3d) Add this code into OnPlayerLevelUp event:
CheckNewItemProperties(oPC,IP_EVENT_LVUP);
3e) Add this code into OnPlayerDeath event:
CheckNewItemProperties(oPlayer,IP_EVENT_DEATH);
3f) And this code needs to come into OnResurrect event:
CheckNewItemProperties(oTarget,IP_EVENT_RESPAWN);
There is no such event in vanilla, but if you use community patch 1.72 then you can place this code into 70_mod_resurrect script, if you don't you should add this code into both Raise Dead and Resurrect spell scripts.
Note: obviously you also need to add this line above each of the script's void main() line to make it compile:
#include "_sh_inc_ip"
4) Some of the spell-related itemproperties requires custom code into spellhook. However, this just uses the community patch spell engine that allows to increase spells duration/casterlevel/etc dynamically. So if you don't use community patch then don't bother with this step. Instead if you want to make it work you need to manually edit script of each spell that is supposed to be affected. If you use community patch (prefferably 1.72, with 1.71 only caster level itemproperty will work) then you need to use script "spellhook" as your spellhook or merge this script with your current spellhook.
5) Warning. In order to make it look more "professional", the vanilla On Hit Cast Spell itemproperty was made invisible. Toolset now list this itemproperty as "On Hit Cast Spell (invisible)", this is because some of the itemproperties needs to have On Hit Cast Spell - Unique Power on an item to make them work - this applies for custom On-Hit options and On Hit Cast Spell % itemproperty. This means that unless you modify this, after installing all premade items with On Hit Cast Spell property will have this itemproperty invisible to players. To workaround this there is also new itemproperty On Hit Cast Spell (new) which does nothing and only acts as a visibility placeholder.
New choices for vanilla itemproperties
Immunity Specific: Has additional options: silence, deafness, blindness, level drain, ability drain, sleep, confusion, dominate, daze, slow, entangle, trap, stun, curse, charmed.
On-Hit: Has additional options: knockdown, entangle, petrification, curse, spell failure. Also DC can now range from 28 to 50. *requires On-Hit Cast Spell (invisible) - Unique Power
New itemproperties
Note, all custom itemproperties are listed with * in toolset for easier access. This is just name in toolset the * is not visible when examining item, also some properties are named differently in toolset to make them sort or for clarity to builder.
Full list of new custom itemproperties (excluding those from community patch):
Use limitation ability score - requirement of specific ability threshold to equip the item, in case multiple of this properties are used on same item player must fulfil all of them to equip the item. Property is colored in red and appears at the top of the list. This limitation cannot be overcome with UMD.
Use limitation class by level - requirement of specific class and specific number of levels to equip the item, unlike ability score, when used multiple times on same item, player needs to fulfill just one of the requirements to equip the item. Property is colored in red and appears at the top of the list. This limitation cannot be overcome with UMD.
On Hit Cast Spell % - special version of on hit cast spell property, vanilla on hit cast spell property fires everytime. That can be extremely overpowered with multiple attacks so I made this. This itemproperty lets you specify a % chance to fire the spell. *requires On-Hit Cast Spell (invisible) - Unique Power
Speed Increase - applies movement speed increase effect in %, itemproperty stacks on all equipped items (and speed decrease property)
Speed Decrease - applies movement speed decrease effect in %, itemproperty stacks on all equipped items (and speed decrease property)
Regeneration, lesser - less powerfull version of regeneration, allows to make a regeneration to proc once per 2-5 rounds, intented for lower-levels or low-magic environment
Caster Level - bonus to caster level of specific class. *requires community patch or custom solution for increasing caster level
Immunity During Rage - applies immunity during rage, works similarly to epic rage feats. Itemproperty features new choices added into immunity specific property as wel. *requires community patch or custom solution for barbarian rage
Changes Alignment To - itemproperty changes alignment of player to Neutral/Lawful/Chaotic/Good/Evil. This itemproperty might need some additional work - currently it does not store previous alignment and the change is permanent.
Vision - a "stacked" itemproperty that features multiple vision options: low-light vision, darkvision, ultravision, see invisibility, true seeing. *requires nwnx_patch or nwncx_patch for low-light vision and darkvision
Extra Gold from Monsters: "Stub" itemproperty. This needs to be implemented in your module - since everyone uses different loot system it is not possible to make this in way it would work for everyone as is.
Better Chance Of Getting Magic Item: "Stub" itemproperty. This needs to be implemented in your module - since everyone uses different loot system it is not possible to make this in way it would work for everyone as is.
Improved Sneak Attacks: Bonus to sneak attack. *requires nwnx_patch or nwncx_patch
Extra attacks: Adds extra attacks with main hand.
Bonus Hit Points: Adds bonus to maximum hitpoints. *requires nwnx_patch or nwncx_patch
Reduced Hit Points: Adds penalty to maximum hitpoints. *requires nwnx_patch or nwncx_patch
Increased Health: Increase maximum hitpoints by percentage. Applies after bonus hit points has been calculated. *requires nwnx_patch or nwncx_patch
Reduced Health: Decrease maximum hitpoints by percentage. Applies after bonus hit points has been calculated. *requires nwnx_patch or nwncx_patch
Ignore Terrain Limitation: "Stub" itemproperty. This needs to be implemented in your module - since there are no vanilla terrain limitations this has obviously sense only if your module has them...
On Level Up Cast Spell - % chance to casts a spell whenever player levels up. The spell is targetted on a player. *requires community patch
On Death Cast Spell - % chance to cast a spell whenever player dies. The spell is targetted on a player. *requires community patch
Bonus Damage To Epic Spells: Increases damage of Hellball and Greater Ruin spells. *requires community patch or manually editing spellscripts of affected spells
Bonus Damage To Dragon Breath: Increases damage of dragon breath from Dragon Shape (druid/shifter).
Extended Duration of Rage: Increases duration of rage.
Extended Duration of Bigby Hands: Increases duration of Bigby Hand spells - this was designed for a module that uses switch from community patch "shorten duration of disable spells", thus into environment where these spells are limited to 3 or 6(extended) rounds. *requires community patch or manually editing spellscripts of affected spells
Extended Duration of Divine and Holy Spells: Increases duration of all Divine spells and abilities + Holy Sword. Can be configures in _sh_inc_ip to exclude either clerical domain powers, divine might/shield or divine wrath. *requires community patch or manually editing spellscripts of affected spells
Extended Duration of Bard Song: Increases duration of both bard song and curse song abilities.
Extended Duration of Regeneration Spells: Increases duration of Regeneration and Monstrous Regeneration spells. *requires community patch or manually editing spellscripts of affected spells
Extended Duration of Damage Shield Spells: Increases duration of all damage shield spells (Elemental Shield, Mestil's Acid Sheat, Death Armor, Wounding Whispers, Aura vs Alignment). *requires community patch or manually editing spellscripts of affected spells
Increased HD of Familiar: Increases level of summoned familiar. However maximum level is 40 - it would be possible to extend this but new blueprints would be needed. *requires community patch
Increased HD of Animal Companion: Increases level of summoned animal companion. However maximum level is 40 - it would be possible to extend this but new blueprints would be needed. *requires community patch
Increased HD of Summon - Reserved itemproperty, not available now.
Increased HD of Undead - Reserved itemproperty, not available now.
Increased HD of Animal - Reserved itemproperty, not available now.
Spell Resistance (Stacking) - An alternative to the vanilla Spell Resistance. This itemproperty will stack on all items. Has also negative values.
Attack Rating - An alternative to vanilla Attack Bonus. This property works in way that every 10 points = +1 ab. Itemproperty works on all items and stacks together. Has also negative values.
Evasion - An alternative to vanilla AC Bonus. This property works in way that every 10 points = +1 AC - Dodge. Itemproperty works on all items and stacks together. Has also negative values.
Defense - An alternative to vanilla AC Bonus. This property works in way that every 10 points = +1 AC - Armor. Itemproperty works on all items and stacks together. Has also negative values.
Deflection - An alternative to vanilla AC Bonus. This property works in way that every 10 points = +1 AC - Deflection. Itemproperty works on all items and stacks together. Has also negative values.
Attachment | Size |
---|---|
![]() | 71.33 KB |
WOW! Very nice!
Holy shit, Shadooow. That is unbelievably cool. These belong right in the EE as official game content. x_x Impressive as heck.
This has far too many requirements, drawbacks or is very situational and has no sense for most modules to even consider that. But thank you.
I suppose most builders will just use this for inspiration and they make it on their own.
Also btw, the main reason for these properties was that I was trying to make random items. After some playing with that I realized that all items are more or less same thanks to very limited options for itemproperties. Also even for a 40-level based module I found itemproperties like +Attack Bonus and +AC Bonus too strong. I wanted to give half of that for example. Now this is possible. Question is if I ever rework items in my module to use this or finish that random itemproperties system...
You gave me a lot of new ideas, thank you! :)
Isn't this one of the nicest things.