Community Patch 1.72 for NWN:Enhanced Edition
Shadooow
Member Posts: 402
After seeing requests for things that are fixed for years in community patch and after finding a way how to make it work the same way it used to work on 1.69 I prepared a new version madeto work with NWN:EE.
Download
WHAT IS THIS ABOUT
Community Patch is a collection of fanmade fixes solving lots of issues of the original NWN. This does still apply for NWN:EE. NWN:EE fixed only the most problematic issues that were hardcoded. So far there has been no "content-fixes". This package also contains some graphic and other improvements to give the game fresh/modern look and to grant module builders more possibilities.
There is not enough space to list all the changes that are in this package. This project was developed over several years and 1.72 is its third generation. Full documentation can be found here:
Documentation for 1.70 + 1.71
Documentation for 1.72 (unfinished/not accurate - contains readme to the content that is not present for NWN:EE release)
The speciality of this package is that it has lowest priority. Unlike CEP,Q,PRC,3.5Ruleset it will not override content of your module. It will also automatically apply into every module you will play or build, it is not needed to install it separately into each module you want to play.
HOW TO INSTALL COMMUNITY PATCH 1.72 INTO NWN:ENHANCED EDITION
1) Copy content of the folder "copy into game's user folder" into NWN:EE user folder - this should be ~/Documents/Neverwinter Nights but can vary based on OS. This action should not require to overwrite anything (unless you installed 1.72 once already).
2) Copy content of the folder "copy into game's installation folder" into NWN:EE installation folder - the default path for windows is ~/Program Files/Beamdog/00829/ but can vary based on OS. This action *should* require to overwrite some of the files, allow it. If it didn't you are in wrong path. Also note that you might need admin permissions if NWN:EE is installed into Program Files.
3) Start NWN:EE, you should notice a 1.72 "sticker" below Hordes of Underdark logo and you should hear original NWN theme music in menu.
BeamDog client should not force an update on you, however when new headstart version will be released, re-installing this package will be needed.
Only english language is supported right now. If you don't want to use english language, remove dialog.tlk from your NWN:EE user folder - this will restore language of the installation (which will not reflect changes done by this modification).
Additionally, there are some extra resources in "additional resources (optional)" folder. This is purely optional and usual user shouldn't need to worry about this.
1) Folder "restore vanilla icons" contains vanilla (original) colorless icons for those disliking colored icons that this unofficial patch brings, in such case copy content of this folder into NWN:EE user folder
2) Folder "1.72 builder resources" contains resources for module builders.
HOW TO UNINSTALL
1) Remove dialog.tlk from NWN:EE user folder
2) Run Beamdog client and select NWN:EE. There should be a new button right next to [Options], this button will let you restore your installation to default.
DISCLAIMER:
This is unofficial, fanmade modification. It changes several files inside NWN:EE installation folder, folder that should not be changed.
This modification is using a technique, that might be there only for BeamDog's internal usage, and it is possible that this functionality will be removed in future. If that should happen this modification will no longer work at all (but if this happens I will fix this).
Use at your own risk.
Download
WHAT IS THIS ABOUT
Community Patch is a collection of fanmade fixes solving lots of issues of the original NWN. This does still apply for NWN:EE. NWN:EE fixed only the most problematic issues that were hardcoded. So far there has been no "content-fixes". This package also contains some graphic and other improvements to give the game fresh/modern look and to grant module builders more possibilities.
There is not enough space to list all the changes that are in this package. This project was developed over several years and 1.72 is its third generation. Full documentation can be found here:
Documentation for 1.70 + 1.71
Documentation for 1.72 (unfinished/not accurate - contains readme to the content that is not present for NWN:EE release)
The speciality of this package is that it has lowest priority. Unlike CEP,Q,PRC,3.5Ruleset it will not override content of your module. It will also automatically apply into every module you will play or build, it is not needed to install it separately into each module you want to play.
HOW TO INSTALL COMMUNITY PATCH 1.72 INTO NWN:ENHANCED EDITION
1) Copy content of the folder "copy into game's user folder" into NWN:EE user folder - this should be ~/Documents/Neverwinter Nights but can vary based on OS. This action should not require to overwrite anything (unless you installed 1.72 once already).
2) Copy content of the folder "copy into game's installation folder" into NWN:EE installation folder - the default path for windows is ~/Program Files/Beamdog/00829/ but can vary based on OS. This action *should* require to overwrite some of the files, allow it. If it didn't you are in wrong path. Also note that you might need admin permissions if NWN:EE is installed into Program Files.
3) Start NWN:EE, you should notice a 1.72 "sticker" below Hordes of Underdark logo and you should hear original NWN theme music in menu.
BeamDog client should not force an update on you, however when new headstart version will be released, re-installing this package will be needed.
Only english language is supported right now. If you don't want to use english language, remove dialog.tlk from your NWN:EE user folder - this will restore language of the installation (which will not reflect changes done by this modification).
Additionally, there are some extra resources in "additional resources (optional)" folder. This is purely optional and usual user shouldn't need to worry about this.
1) Folder "restore vanilla icons" contains vanilla (original) colorless icons for those disliking colored icons that this unofficial patch brings, in such case copy content of this folder into NWN:EE user folder
2) Folder "1.72 builder resources" contains resources for module builders.
HOW TO UNINSTALL
1) Remove dialog.tlk from NWN:EE user folder
2) Run Beamdog client and select NWN:EE. There should be a new button right next to [Options], this button will let you restore your installation to default.
DISCLAIMER:
This is unofficial, fanmade modification. It changes several files inside NWN:EE installation folder, folder that should not be changed.
This modification is using a technique, that might be there only for BeamDog's internal usage, and it is possible that this functionality will be removed in future. If that should happen this modification will no longer work at all (but if this happens I will fix this).
Use at your own risk.
Post edited by Shadooow on
20
Comments
There is no ETA on windows NWNX and unfortunately I cannot develop for linux. On the other hand, once the NWNX support for windows will be complete, every plugin will be cross-platform - what exists for linux will automatically work for windows and vice-versa. That is more a discussion for NWNX though...
Detailed informations can be read here.
Scripts should never be added into hak because otherwise you will be unable to modify that script in toolset. Models, 2das doesn't work in module and must be put into hak.
Even if you do this and make a special version that works as ERF and HAK. There is another issue with scripts. Basically, unless you start working on brand new module you cannot just import all scripts and have it to overwrite everything - you would lose your own changes. The beauty of the community patch main feature - that it works as a patch - is that you get the CPP version of the script automatically anytime you don't have your own version of that script in module, and also by deleting yours and then re-opening that script from core files. And you can do this anytime. If you used it as an erf, you would need to keep track on your changes and re-import cpp scripts when you decide you delete one of your own script modifications.
That is further problematic because since all scripts exists in core resources, when importing them you will be notified that they will overwrite existing content. All of them. There won't be a way to determine which script will overwrite your own script and which script just overwrites vanilla.
Therefore the recommended approach is to just check if player uses community patch via script. There is a function in '70_inc_main' include that is able to determine whether player has community patch installed. You should use this function at the start of your module and inform player that it won't work without it installed.
Though, afaik there is just one functionality that is important enough and thats the spell engine. You don't need to care if user has community installed for anything else - that is his own problem if he wants to play with bugged animals/familiars or AI. So, if that is your concern than I recommend to import everything from 1.72 builders resources/1.72 spell script changes/ folder (or script changes not sure how the folder is named now). But there is no need to import all other general scripts...
Side note: this statement apply for NWN:EE. 1.69 version contains some nwnx functionalities that require player to have nwncx_patch plugin.
Detailed changelog can be found on nwn vault forums or inside the package.
On a side note, I'd like to report an exploit I have researched when combining levels of Monk and Shou Disciple. I have found that if you take your 5th shou disciple level, after taking 16 monk levels for the 1d20 unarmed damage, the calculated unarmed damage on your character sheet will be 2d20. As in, two twenty-sided dice for a base unarmed damage of 2-40 points of damage per attack. Thank you for reading, and happy gaming to all.
Regarding the exploit I know about it. Its a bug in hardcoded game unarmed calculation. I fixed this in nwnx or nwncx plugin that is included with community patch for 1.69. NWN:EE however doesn't support NWNX the way I need and therefore no nwnx features are included in version for NWN:EE.
I reported the bug on BeamDog bug tracker but it seems that BeamDog is not much interested in fixing this as its not standard content in their eyes.
So strict answer. BeamDog has my permission to include all the content I am author. But majority of my content is content-based. BeamDog so far haven't started fixing content-based issues and bugs and only touched engine issues or hardcoded stuff - for which I helped as I could already.
Regarding fixes, each single fix needs to be reinvestigated by BeamDog and confirmed. Thus that makes it really annoying for me to report every single bug standalone and also hard for them to test it. But thats BD policy and it makes sense.
However considering community patch contains around 6 thousands of fixes this will be probably not possible to do with this policy in place. Additionally, spellscrips from community patch uses completely new format and are written in a way to allow dynamic changes into spells. Thats however something BD has no interest in - they want to keep spellscripts as close to vanilla 1.69 to make it easier to builders to adopt the fixes and potentionally merge it with their own scripts. This therefore means that every single fix into spellscripts has to be remade and translated into standard spellscript first and thats not an easy task.
I fixed the bug in AC calculation but it requires nwnx_patch and is only available in server mode. And AB needs to be fixed separately and fixing AB is much more difficult.
Neverwinter Nights Community Patch 1.72 (release 06.02.2019)
Fixed broken stuff from previous Patch versions:
- Fixed critical issue with community polymorph system that could happen under very specific rare circumstances and lockdown a server.
- Fixed entangle spell not removing the movement speed decrease effect upon exiting the AOE.
- Fixed bug in AI causing sometimes creatures using KD to stop attacking.
- Unequipping Nasher items will no longer show fancy visual effects without having full set completed.
Revised features from previous Patch versions:
- Revised the method used for making auras and other AOEs undispellable to avoid unwanted effect of aura staying "up" for a few seconds even after owner dies.
- Revised the 70_mod_petrify script - it will now contain the whole original content of the DoPetrification function in order to allow modify how petrification works without need to recompile all scripts using that function.
- Revised the module switch 70_AOE_IGNORE_SPELL_RESISTANCE, the switch will now ignore spell resistance but still allow spell immunity to work against AOE spells (without the immunity it makes all creatures even demilich vulnerable to them which I think is not appropriate)
- Revised the CPP code for multiplayer-friendly placeable spawning skeleton/zombie, will fix the fact that the AOE was not destroyed after spawn and will now also use AOE with smaller radius size to make it more "precise".
New fixes and features:
- [spell] Sunburst: fixed Arcane Defense feat not working against this spell (note this was actually fixed already long time ago in 1.71, it just wasn't announced, so I am adding this now for clarity)
- [spell] Bigby's Clenched Fist: allowed to stack with Bigby's Crushing Hand
- [spell] Bigby's Crushing Hand: allowed to stack with Bigby's Clenched Fist (seriously, clenched fist is the weakest of all of them there is no need to disallow stacking)
- [scripts] Fixed bug manifesting in large modules in multiplayer where traps sometimes randomly trigger where they aren't.
- [monster ability] Bolt: Charm, Confusion, Daze, Domination, Knockdown, Paralyse, Slow, Stun, Web - bolt abilities effects made undispellable
- [feat] Curse Song: added a new variable "IMMUNITY_CURSE_SONG" that will grant the creature immunity to this feat.
- [ruleset] Added dracolich and all 3 variants of Masterius into list of creatures immune to polymorphing.
- [ruleset] Added new module switch MODULE_SWITCH_SHIFTER_ADDS_CASTER_LEVEL - this switch will add shifter levels into caster level of druid.
- [ruleset] Added new module switch MODULE_SWITCH_JUMP_ASSOCIATES_WITH_PLAYER - this switch will move all associates with player when using an area transition within same area.
- [spell engine] Added possibility to set SAVING_THROW_NONE as saving throw override and dynamically remove a saving throw from a spell (this was intented to work already but some mechanics could still have shown before).
- [class change] Blackguard can now select Extra Turning feat.
- [AI] Fixed bug in henchman AI that, when the creature was surrounded by many monsters, caused re-starting combat round over and over which led to attacking sporadically or not at all.
- [AI] Fixed bug in AI where creatures (mostly PC's associates) with sneak attack tried to attack enemy they couldn't see and reach.
- [AI] henchmen and other associates will not break the Stand Ground command anymore. If you tell them stay then they won't attack on their own anymore unless you give the order.
- [AI] Added new variable "IGNORE_AOE" int 1/0, if set to creature with value 1, creature will ignore all AOEs - this will workaround the usual issues with creatures such as dropping into flat very frequently or canceling their spellcasting
- [item] Bolt of Frostbite - damage changed from 1d4 to 1d6 to fix/workaround bug of unlimited ammo 1d6 cold that was instead doing 1d4 as it was using these bolts (will not automatically change damage on already existing or pre-placed bolts or on any copies made out of them)
- [tile] tdc01_p18_01, tdc01_o18_01, tdc01_p19_01, tdc01_o19_01 - fixed "up in the air" walkmesh issue
- [tile] tdc01_p19_01, tdc01_o19_01 - fixed few polygon gaps
- [tile] ttd01_o19_01 - fixed upper part of the tent
- [tile] tii01_p18_01, tii04_p19_01 (Illithid tileset Corridor Stairs Up/Down) - added missing invisible door transition, this will only affect newly placed tiles of course, more comfortable for builder and player to use than triggers on ground
- [tile] tdm01_g02_01 - flying crystals were lowered to touch the ground
- [2DA] appearance.2da - assigned default portrait for Archer Dummy and Combat Dummy
- [scripts] Improved/rewritten vanilla code for secret door triggers - now, players will be re-rolling automatically while inside the trigger each 3/6 seconds. (Normally, when entering trigger player rolls only once, to get a new roll player must exit and re-enter trigger.)
Version for NWN:EE only:
- Fixed Toolset Script Debugger feature. (if you don't know what is it read this - https://neverwintervault.org/article/tutorial/script-debugging-tutorial)
- Fixed NWN:EE bug that causes AoE spells to sometimes ignore monsters that has auras.
- Fixed NWN:EE bug that sometimes causes monsters to ignore or stop attacking players. (Note: there might still be some instances where this happens + to get both fixes you need to recompile all scripts and use CPP includes)
- Fixed NWN:EE bug where invisible area transition door was making sounds of wooden door.
- Fixed ugly transparent texture issue in dungeon tileset.
- Added 'EE Familiar Glitter Removal' from Symphony to workaround huge fps drop with Fairy Dragon/Pixie familiars.
- Added 'EE UHD Safe Lightning Hotfix' from Symphony.
- Added a workaround for NWN:EE bug that disallows casting polymorph spells with metamagic - community patch will automatically enhance spells cast by shifter in polymorph by empower or maximize metamagic if player has the corresponding feat.
- Re-added extraneous NWScript constants that were under NWN:DE defined inside nwscript.nss file, you can find them now inside 70_inc_main library.
- Removed the ShutdownServer() function from 70_inc_main as NWN:EE fixed the crash bug that it was using so it was no longer functional.
- Re-added nwnx-related scripts and nwnx-using scripts (community patch is newly distributed with nwnx_patch for EE (windows, server only)).
NWNX_Patch (both versions):
- fixed longstanding issue in NWN, bugged AC after being hit by entangle/web and similar effects
- fixed bug in softcoded script for special attacks not decreasing uses of smite evil
- fixed bug in new feat uses calculation that caused infinity shape feats not working properly
- fixed GetPCBicFileName sometimes returning "garbage data" if the character bic file name was 16 characters long
- corrected the fact that the fix for darkness was giving lowlight vision and fix for lowlight vision was not giving anything
- fix for persistent AOE spells not allowing spellcraft bonus for their saving throw rolls. (coded inside softcoded saving throw script)
- removed the feature to prevent level-up in polymorph to prevent exploits (players in polymorph found it confusing as they didn't know they reached next level) - either way community patch forces to redo levelling up if player is polymorphed, this was just for the fancy effect
- GetPlayerLanguage function fixed (I think it never worked properly) and improved to store the result from NWNX into local variable and return it from local variable on later calls, function now has extra parameter you can set to TRUE to force it to read value from NWNX (this should be done in OnClientEnter)
- fixed the STACK UNDERFLOW error when using ForceRest on invalid or dead creature
- disabled the possibility to automatically equip unidentified arrows (wasn't intented)
- improvement for the hardcore Initiative feature - now, the conditions for this to trigger will be resetted whenever new initiative roll is made (this means that if you initiate attack, then start running around till initiative expires and attack again, you will again be able to consider enemy flatfooted (if he rolls less), this also makes players vulnerable to this mechanic when they previously were subject to it only first time they attacked in same session)
- new function ShutdownServer (because the vanilla way no longer work under EE)
- new feature "Hide Classes On Character List=1" (under [Server Options] in nwnx_patch.ini) this will as name suggest hide classes in the list of players when logging in (I am aware that nwnx_fixes has this functionality, I had to however make it for NWN:EE and I want to keep my plugins as much identical across platforms as possible hence why it is now in nwnx_patch for 1.69 too)
NWNX_Patch for NWN:EE:
This is a new version for NWN:EE only for server, nwncx_patch is no longer supported. This version differs in functionalities - some were removed because they were obsolete, some were (temporarily) removed because I couldn't make the functional on EE yet.
Now, for those who already seen and maybe used the previous first release for NWN:EE that I published outside of community patch, here are changes in this release:
- re-implemented monk speed+haste calculation bugfix
- re-implemented the Shou Disciple+Monk 2d20 unarmed bug
- discovered that making weapons to be monk weapons is not working right now
- re-implemented softcoded special attacks and all the fixes/features associated with that (quivering palm&pm immunity, smite good/evil stacking with custom classes, ability to set AoO to be death/sneak attack, option to make custom special ability)
- re-implemented option to detach paralysis immunity from mind-spells immunity
- re-implement the possibility to use SetCustomToken for values 0-9
- re-implement duplicated events feature. However, now nwnx_patch will only run 70_mod_def_load script which runs in paralel with default module OnModuleLoad script. This script then replace original module script events with its own using new NWN:EE feature SetEventScript. These scripts then runs original scripts after they are done. If you don't want this to happen, modify 70_mod_load script and remove the code doing this.
- re-implemented hardcore initiative rule
- fixed function NWNXPatch_BootPCWithMessage to work under NWN:EE (but it is kind of redundant now, it allows to send player custom text from TLK opposed to the NWN:EE BootPC that allows to send player text you can directly specify in NWScript - so candidate for removal)
Additional notes for this release.
1) Starting 6.2.2019. Community Patch project is considered final and stable. It will however not mean it will be unchanged (as was the case of previous versions). Especially thanks to Enhanced Edition, a new bugs and issues are being found and someone needs to fix them as there is no time to wait for BeamDog to do so.
Either way, the only reason it was not marked as final version was lack of playtesters anyway. But this changed now since I use community patch for hosting multiplayer server under NWN:EE.
2) The additional resources are not accurate/updated. I propose to use comparing tools against /ovr folder until that gets corrected and updated.
3) Unfortunately the announced fix for traps misfiring is not working 100%. I had reports from my own PW that it is still happening. That being said, it seems to catch some of the false-positives according to the server log file so it is not useless I guess...
4) if you want to use nwnx_patch and nwnx for windows generally, better join the newly created discord channel for this project: https://discord.gg/NBYCPWj
It is possible that there is a serious bug causes crashing in current dlls (currently investigating), also it is possible that nwnx_patch will be detached from community patch itself in future and will have faster/more often update cycles.
1) Start Chapter 1 of the Wailing Death Campaign playing a monk with a Strength score of 13+.
2) Use the "DebugMode 1" command to level the monk to 10 and spawn Boots of Speed. Equip the Boots of Speed.
3) Select the Circle Kick, Power Attack, and Great Cleave feats during the leveling process. Monks get the Cleave feat for free at level 1.
4) Make your way to the Docks District from the City Core of Neverwinter, and enter the Silver Sails Trading Co.
5) While in the first room, save your game before continuing to the next room containing a swarm of fire beetles (the encounter should also spawn 2 giant spiders at your current level).
6) Pause the game, activate Flurry of Blows, resume and attack the fire beetle swarm. Watch the combat log in the chat window at the bottom of the screen closely, as one of the fire beetles is bound to provoke an attack of opportunity.
7) Once you have killed all the enemies in the room, expand the chat window's view of the combat log to see the penalties applied to every attack you made during that fight.
8) If unable to reproduce the bugged results, reload your saved game and repeat steps 6-7 as needed.
Hopefully, this will give you more insight as to what I'm talking about. Thank you for reading, and happy gaming to all.