Community Patch thread in new forums

Starting over. Post your issues, suggestions and questions here.

I have one question of my own though. Does anyone knows why is the module switch MODULE_SWITCH_CURSE_IGNORE_ABILITY_DECREASE_IMMUNITY disabled by default? Who persuaded me to do it and why? I don’t remember why I did it, it used to be activated by default and it makes sense. No idea why it should be deactivated.

2 Likes

I think it is awesome that you’re maintaining the CPP both for Diamond and EE. What do you advice if someone is using the CPP with EE and then Beamdog makes a new stable release?

Any beamdog update will uninstall CPP from game installation folder so it needs to be reinstalled afterwards.

1 Like

I confused this with the nwnx feature to disallow immunity to ability decrease work for ability decreases on equipped items. This one is probably too hardcore to be enabled by default. nvm…

@Shadooow

Right now, if the module uses unmodified x2_def_mod_load (which is pretty rare case) then it will be applied when loading a module, but only on hardcore or very hard difficulty.

*source

New version released.

DOWNLOAD 1.69 / DOWNLOAD version for NWN:EE

Fixed some of the issues caused by 1.72, special thanks to Tresset who found and reported them. Also finally did some work on documentation. There is new folder 1.72 documentation where you find updated readme + original readme for 1.71 which is no longer available online (had to actually dig for it on wayback machine). The documentation for 1.72 is still not fully finished but it is almost done. The only thing that needs to finish/rewrite is info about new possibilities of the spell engine, differences in versions between NWN:EE and 1.69 and to update documentation for NWNX Patch plugin which is about 7 versions back.

Currently only manual 7zip/extract installation available. I totally forgot how to build the installer version so that will be delayed a bit. If you got any questions about this release don’t hesistate to ask.

Neverwinter Nights Community Patch 1.72 Release Candidate 4 changelog

Fixed broken stuff from previous Patch versions:

  • fixed nasher’s set items not degrading bonuses when unequipping after set completion
  • re-enabled spellscripts to be forwards compatible again (when spellscript from cpp was used by player without cpp installed, spell were missing spellhook related features such as crafting support or firing user defined spellhook script)
  • Mestil’s Acid Arrow: fixed bug that prevented the subsequent damage when the spell was cast by PM or any custom prestige class granting caster level on target with spell resistance
  • Storm or Vengeance damage type fixed to electricity.
  • Blade Thirst: added missing support for 72_DISABLE_WEAPON_BOOST_STACKING module switch
  • fixed PDK’s Heroic Shield and Oarh of Wrath error feedback

Revisited features from previous Patch versions:

  • removed possibility of showing wings and tails for bodak and orc chieftant A models to avoid issues with preexisting custom content blueprints with errorneous wings/tails
  • Community Patch PC Widget tool will now work even in modules without tag-based scripting enabled

New fixes and features:

Campaign fixes:

  • fixed SoU campaign bug in chapter 1 that prevented the conversation option to charm Hanniah work properly
  • fixed HotU campaign bug in chapter 3 that didn’t kill henchmen after surrendering their soul
  • following items from SoU and HotU will now work in every module player will play including vanilla NWN campaign: Djinni Bottle, Ragged Cloak of the Worg, SoU starting class items

Spells and spellabilities:

  • All weapon buff spells: the duration visual effect is no longer dispellable (this makes the spell completely undispellably by vanilla dispells, but vanilla dispell could only remove hidden visual effect, the actual benefits on weapon were always undispellable - this will just prevent confusion)
  • All dispel spells: dispel effect externalized into‘70_mod_dispel’ script, if builder would want to change the behavior of the dispel effect it can be done here without modifying spellscripts
  • Clarity, Lesser Mind Blank, Mind Blank: added supernatural effect check as is in restoration spells - this allows to make a mind-affecting effect which won’t be removed with these spells
  • Planar Binding: signal event will fire for non-outsiders too

Scripts:

  • x3_inc_horse/x3_mod_def_enter: - fixed horse scripts causing appearance change when loading/entering module with character with custom appearance or non-standard racial type
  • x2_mod_def_load: corrected comment above Use Poison switch+
  • x2_inc_itemprops library: function IPGetItemPropertyByID will now support Damage Decrease itemproperty too
  • 70_inc_itemprops library: function GetItemPropertyByID will now support Damage Decrease itemproperty too
  • Additions into community patch “spell engine”:
    – variable “SPELL_TARGET_OVERRIDE” can be also location
    – new feature to cheat spells, see custom function ActionCastCheatSpellAtObject in 70_inc_spells
    – possibility to modify belonging to the racial type, set local int variable named “IsRacialType_X” where X is racial type ID, values 1 will consider oTarget to be that race, value -1 will not consider target to be that race

Other:

  • fixed few vanilla blueprints having errorneous tail or wings assigned
  • fixed darkvision feat to work when gained by Pale Master, Red Dragon Disciple or Shadowdancer (dependant on NWN©X Patch plugin)
3 Likes

ooo crap it seems there is critical issue with NPCs unable to cast spells…

sorry for inconviniences, i will release hotfix version asap

EDIT: fixed, please redownload the latest version, links above were updated

EDIT2: fixed another quite serious issue happened when using NWNCX. Those who downloaded 1.69 version and are running game via NWNCX should redownload it again, link updated.

1 Like

Few suggestions needed before new release.

#1 There was request for a module switch to allow cast weapon buffing spells on ranged weapons (bow/crossbow) as this is missing, I already figured out how to do that in conjuction to the cpp expanded itemproperties and existing module switches such as “allow boost ammo”, question is, should this be added as brand new switch or rather consolidate into “allow boost ammo” ? The second choice seems appealing because some spells works only on ammo and some spells works only on bow/crossbow, also cpp has already enough module switches. Is there any reason the boost ammo and boost ranged switches should be separate? Especially since some spells don’t work on ammo (gmw) and some spells don’t work on ranged (flame weapon/darkfire)? Note, that if the switch is to be consolidated the switch variable name will stay as is to maintain backwards compatibility - so the variable still will be “72_ALLOW_BOOST_AMMO” but the switch constant name and switch name in PC Widget tool will be renamed to better describe new behavior.

#2 There was also request for more spell related module switches. I am not totally against that, there is enough switches already but I suppose that if I divide them into module and spells in PC Widget it can still be made easy to navigate/search in them. Question is, what changes to implement? Majority of spell changes can be (and should be) implemented in CPP with usage of spell overriding/modifying variables. So I don’t think it is a good idea to provide a switch for something that can be done using them. So what changes remains? Except something very specific to PW all I can think of are PnP 3.5 (or 3.0) changes such as no full healing, earthquake to do knockdown/kill, death ward to grant negative energy protection, ability spells to grant +4 (not possible to do via variables as of yet). Another ideas would be the spell focuses to conjuration to enhance summoned creatures (say +1/+2/+3 to attack/damage/saves/skills) and spell focuses to abjuration to enhance dispelling spells (that is bit problem because it would differ in 1.69 and EE, in EE dispells could be rewritten by scratch, in 1.69 it would require nwn©x to do it in same way without side effects)

#3 anyone against light balance change to the blade thirst spell to grant also +3vampiric regeneration along with enhancement bonus? (my proposal - no module switch, untoggleable/automatic change)

#4 still haven’t decided whether and how to implement the new feeature to override/modify spells DamageDice values. This proved to be bit more complicated that it looked at beginning because several spells has more than 1 dice to be affected and there are basically two categories of spells with dice. Damaging spells and Non-Damaging spells and the question is whether I should therefore make a two new variables to be modified/overriden - spell.DamageDice and spell.Dice or just use spell.Dice for all spells. If the latter, then it would be however slighly unconvinient for a builder to modify only spell.Dice of damaging spells (not impossible - either direct spell.Id check or checking 2da values such as HostileSpell would allow the distinction - but not so user friendly…).

New version released.

DOWNLOAD 1.69 / DOWNLOAD version for NWN:EE

New version contains mainly new features for builders + made existing features work better, namely weapon boost spells on ranged weapons. Fixed all campaign issues reported on BeamDog bugtracker (and I wrote details on the fix to BeamDog if they decide to fix it themselves).

Again only manual 7zip/extract installation and english language available for now. Also, documentation for the 1.72 wasn’t updated for this release…

Neverwinter Nights Community Patch 1.72 Release Candidate 5 changelog

Fixed broken stuff from previous Patch versions:

  • fixed Balagarn’s iron horn spell issues affecting caster and his allies, if cast by henchman under specific conditions
  • fixed stunning fist, quivering palm and smite evil/good feats decreasing uses only when they hit when using NWN©X in 1.69 version of the 1.72
  • fixed nonfunction PC Widget tool option to deactivate Musical Instruments rules module switch

Revisited features from previous Patch versions:

  • the “allow boost ammo” module switch changed into “allow boost ranged weapons&ammo” - this is neccessary because some of the weapon boost spell benefits aren’t working on ammo and some of the benefits aren’t working on ranged weapon
  • fixed description of PC Widget Tool item (was description of garlick)
  • added DM check into PC Widget Tool conversation when used in multiplayer to prevent players to modify server switches on localvault servers (and players abusing certain exploit)
  • changed prefix of scripts used in PC Widget Tool conversation (to avoid confusion with disease scripts)

New fixes and features:

Campaign fixes:

Spells and spellabilities:

  • Entangle, Vine Mine: Entangle: spells will now apply movement speed decrease effect upon entrance to match description
  • Battletide, Doom, Prayer, War Cry, Bard Song, Curse Song, Doom Howl, Doom Gaze, Hellfire Inferno: spells will now provide physical bonus or penalty instead of slashing or bludgeoning (note: visual change only, the bludgeoning/slashing was “melded” and worked as physical so nothing really changed)
  • Raise Dead: added feedback when cast on placeable (unification with Resurrect spell which does that)
  • Restoration - Other: will no longer remove rage and horse related effects (unification with standard restoration spells)
  • Inferno: allowed spell to do at least initial damage in case target is already affected by the continuous damage
  • Daze, Magic Missile, (Greater) Stoneskin, Divine Favor, Shield of Faith, Greater Magic Fang, Quillfire, Ball Lightning, Combust, Death Armor, Darkfire, Flame Weapon, Magic Vestment, Greater Magic Weapon: added spell.Limit support (daze - number of HD max affected, magic missile - number of maximum missiles, (greater) stoneskin - number of maximum hitpoints reduced, favor - the maximum bonus to attack/damage, shield of faith - the maximum bonus to AC, greater magic fang - max attack/dmg bonus, quillfire - max bonus damage, ball of lightning - max number of missiles, combust - max bonus dmg, death armor - max bonus dmg, gmw - max enhancement bonus)
  • Ball Lightning: added spell.DamageCap support - in this case DamageCap is by default 1 - 1d6 damage per missile
  • Blackstaff: will now work on a magic staff as well
  • Blade Thirst: spell duration reduced from 2 to 1 round per level to match description, as a compensation, spell will now grant also +3 vampiric regeneration along with the enhancement bonus
  • Major rewrite of weapon boosting spells in order to add support for boosting ranged weapons along with ammunition: (note: this is optional feature that player/builder must enable first for this to apply)
    • made the spells to apply different benefits when cast on a ranged weapon and ammo instead of a normal benefit of the spell that doesn’t work for such item type (for example, instead of enhancement bonus spells will provide attack bonus when cast on a ranged weapon and raw damage bonus when cast on ammo)
    • spells will support custom ranged weapons and custom ammunition (as custom ranged weapon/ammunition are possible to do with nwn©x_patch plugin and BeamDog might add this functionality too in future)
    • in a case spell has no effect on a ranged weapon (flame weapon/darkfire) and the spell is cast on a player holding ranged weapon, spells will automatically attempt to target ammunition if available
    • Blade Thirst: if ranged/ammo boosting is enabled, spell will be possible to cast on a ranged weapons/ammunition despite not slashing weapon, this is intented balance change
    • Bless Weapon: if ranged/ammo boosting is allowed, spell will apply also default benefits not just rakshasa onhit when cast on bolts

Scripts:

  • functions IPGetIsThrownWeapon and IPGetIsProjectile in x2_inc_itemprop rewritten to check 2DA values in order to make them custom content compatible
  • 70_inc_itemprop: new function IPGetIPConstDamageBonusConstantFromNumber that returns the IP_CONST_DAMAGEBONUS_* constant
  • added support for spellability lesser body adjustment into 70_s0_curewounds multi spellscript
  • Spell Engine: added possibility to dynamically modify spell dice value, use variables:
  • SPELL_DICE_OVERRIDE int X
  • SPECIAL_ABILITY_DICE_OVERRIDE int X
  • ITEM_DICE_OVERRIDE int X
  • (spell_id)_DICE_OVERRIDE int X, where X = new dice value; ie 58_DICE_OVERRIDE int 20 on a creature will cause (casterlevel)d20 damage from fireball cast by this creature
  • added new module switch: 72_HARDCORE_INITIATIVE (1.69 only - requires NWNX/NWNCX)

Other:

  • added a new category * Community Patch into standard door palette; currently it provides pre-defined blueprints of all vanilla generic door models that are set to plot and locked on nonexisting key
  • tile ttu01_s06_01: fixed gaps in the floor texture and stretched texture on the floor corner and small stalagmites (special thanks to TheBarbarian)
  • fixed elder water elemental’s script set
  • fixed old white dragon’s alignment from true neutral to chaotic evil
  • updated multispell script auto 2da merger scheme to change script of the spellability lesser body adjustment as well
  • added new itemproperty called Metamagic, this itemproperty is supposed to provide extra feedback to players for items that has their spells enhanced with metamagic and additionally acts as such enhancement itself so builder can use this method instead of using variables. Itemproperty stacks, meaning that if you grant item Metamagic: Extend Spell + Empower Spell + Maximize Spell it will grant the spell benefits of all 3 metamagics together (though not every spell can take effect of all three).

NWN:EE only:

  • added a new option in PC Widget Tool to hide helmet model
  • re-added the module switch 72_POLYMORPH_MERGE_CASTING_ABILITY, this was removed in NWN:EE version because NWN:EE fixes removal of spellslots when polymorphing; however, spell slots are still lost/consumed which makes this module switch still usefull

Dialog.tlk changes:
Doom spell description: removed the mention about ability checks (which spell doesn’t affect)
Blade thirst description: added mention about newly granted vampiric regeneration

Extra notes to the release:

  1. Whether and how you use the Metamagic itemproperty is up to you. You can even use it as an automatic metamagic applied to all spells if you would want - however by default itemproperty applies only on spells cast from the item (including onhit version of spells) so if you want to use it on a magic staff to grant player automatic metamagic then you need to combine it with variables for overriding spell informations in this case SPELL_METAMAGIC_MODIFIER int X (1 empower 2 extend 4 maximized) given to player when he equips such staff or spellhook where you can code this by checking item tag and then applying the override for next spell.
    Also note that, unless you add the itempropdef.2da/itemprops.2da into haks, this itemproperty will be invisible to players who don’t have community patch installed.

  2. The weapon buffing spells get major rework and it is likely this will still need some adjustments in future. This is because in NWN some of the itemproperties doesn/t work on ranged weapon or on ammunition or both. Thus this feature was quite complicated to implement properly and in a way convinient for players. Unfortunately from this reason it is no longer possible to enable the spells only for ammunition - in theory, it was good idea, but because of the issues above it turned to be just non-consistent in practice where only a darkfire/flame weapon worked on ammo basically. On the other hand, while it is possible to cast on both ranged and ammo it is not as powerful as you might think it is - often to get full benefit of the spell you need to cast it on both ranged weapon and ammunition separately (meaning you need to prepare the spells twice) and the ammunition runs out quite soon.
    Note: the greater magic weapon applies +X piercing damage to arrows. While this shows on character sheet, it should not stack together, but I was unable to prooftest this, if you find out please let me know.

  3. right now, no spell specific switches has been added. This might be in next release, if I get some more ideas for which spell and how to adjust. Theoretically I could add a switch to turn all vanilla spells to work per 3.5rules though this won’t reflect spell description so it is probably bad idea.

  4. as for new itemproperties that would work the same way as metamagic works now; I am afraid it won’t be doable. Metamagic was doable because there were already existing texts in vanilla dialog. Caster Level and DC could theoretically also be possible to do as the texts exists, but other spell informations such as damage cap will not have it. That would make them invisible to every player who is not using community patch - given this feature is only useful to module builders that is quite a disadvantage. Metamagic on the other hand will work, at least if you add it into your 2das. Additionally, there is no more empty space I can reuse. CPP generally re-uses lines between vanilla lines or lines of stuff that was unreleased/nonfunctional, for example the metamagic itemproperty replaces Vorpal - unreleased itemproperty (it was later added as on-hit). There are 3 more lines to reuse. If I wanted to add more itemproperties I would have to use lines above 87 which would be problematic for builders using their own custom itemproperties or package that adds them (PRC for example).

2 Likes

Hey there.

I was wondering, it seems that your latest patch, 1.72, specifically the changelog for Beta 1 if I remember right, makes some additions to AI.

Will this in any way conflict with Henchman Inventory & Battle AI Mod?
To be honest, I don’t mind if it does, I have concluded that it’s actually not worth it.

As a general rule, since the way CPP works (lowest priority) it is compatible with everything in a way it doesn’t break anything. This applies to the Henchman AI mod as well.

But it also means that none of the CPP fixes and features to AI will work, especially because CPP is fixing and enhancing vanilla AI whereas Henchman AI is a brand new set of scripts that overwrites vanilla AI. And the code is only partially inspired by vanilla AI. Thus there is no way to apply the CPP fixes and features into it.

Plus, given it is a brand new AI, it won’t suffer with the issues vanilla AI has (but might have new issues) and a lot of CPP features were specifically inspired by this mod as it seemed to be very popular choice. And it still looks as a prefferable choice for a players, vanilla AI is better suited for multiplayer though.

@Shadooow Do you plan on fixing this OC bug reported on the BD forums and submitted to their bug tracker?

TR

Oh yea, I read this.

There are 3 possibilities why this can happen.

#1 - OnSpellCastAt event - fixed in CPP, event won’t start combat AI when the creature is non-commandable (cutscene or any disable state, this for example fixes the vanilla issue when turning undead used again will reset already turned undead to attack you)

#2 - the turned effect applied from turn undead feat itself - this is theory only, plot creatures should be immune to any disable states so this shouldn’t be the culprit

#3 - bad scripting behind the cutscene

I would bet this is caused by the OnSpellCastAt event, so unless you clarify you have/had CPP installed at that time, I don’t think there is anything to fix for me.

Just vanilla. I was just curious was all.

TR

Thanks for the answer.
I’ll keep that mentioned mod for now, as I do like the new tactics system and I never play in Multiplayer, anyway.

Now, another question…
You’re very good with coding, do you think something like this is actually possible for the old non-EE 1.69?

I’m thinking a good workaround would be to make it so the FPS/VSync is forced unlimited/off during menu changes; loading, saving, transitions, etc.

Hmm I think thats outside my abilities, I don’t have experiences and knowhow about graphical features, I don’t even know what VSync is. On top of that I don’t know how to locate it in engine - I can fix crashes because I can run the nwn with debugger and when it crash it will tell me the location, something to start from, this issue doesn’t crash so I won’t know where to start. Also, I am not having that issue on my own PC and to fix something you cannot reproduce is always very difficult.

So I have to disappoint you there…

You may not know about graphical features, but this is something you can try yourself, I think.

Not sure which videocard you use, there’s Nvidia Inspector (better yet Nvidia Profile Inspector), for AMD I don’t know.
In there, you can change the “FPS Limit”, I’d say you should try 60 and unlimited, then get in Neverwinter Nights, play a module where there’s an “Extra Large” area, save there then load. Repeat with and without the FPS limit, you’ll understand what I mean.

Don’t forget this is only in the non-EE edition, it’s fixed in EE as confirmed by niv.

I’m just telling you that in case you’re curious and, let’s just say by luck, you may get an idea on what you could try to do.

By the way, this article explains what VSync is rather perfectly if you’d like to know;

On another note…
When I perform Taunt, the top-left icon is actually one for “Walking” (top-view from behind of a man walking forwards), I don’t remember it being so but I never noticed it like that, perhaps this is a visual bug in RC5?

will check the links later, right now going to bed but will at least respond to this:

this is not a bug, but rather intented, I mean it is not, however I wasn’t able to restore the original taunt icon / as far why is it happening or what changes it this happens when you run nwn via NWNCX or with nwmain patched to use nwncx automatically and it is a feature of nwncx_patch plugin, namely softcoded taunt - the current implementation isn’t ideal however besides the icon there shoukd be no other difference and additionally player/builder now has the ability to rework/modify taunt as they see fit (for example I like the Higher Grounds taunt rework which is no-action instant effect and you can have it with nwncx_patch).

@Shadooow is it possible to add to either CPP or nwncx_patch fix to Blind Fight showing incorrect log message with base concealment, instead of modified by this feat and other feats that might affect it?

Or may it be possible to fix it with simple nwscript changes or something else that wouldn’t require CPP/nwncx_patch/nwnx?

Um, this would be very hard to do. Doable with nwncx, but I already digged into some messages (specifically wanted to enable custom damage types) and its all client-side in a place with no real help to read whats going on.

Either way I think you are wrong on this one. Blind Fight does not halve concealment. It lets player to roll twice (in case the first roll against concealment was unsuccessful). In practice it has basically the same effect but I still think it would not be a good idea to print half the base concealment value…

Speaking of nwnx/nwncx. I think it might be time to inject nwncx into nwn automatically within community patch. There were some arguments against that, but as always this feedback didn’t come from the users of this project. So basically, CPP would provided modified nwmain.exe (or maybe with new exe called nwmain172.exe) which would run nwn client with all the functionalities of nwncx plugins. This is to remove dependancy on other software which needs to be downloaded separately and thus making it more user friendly.