Okay, specific questions I mentioned in our convo '>
How does the CPP interact with non-patched NWN? Specifically:
1) Module/PW builder builds their module with the CPP installed, and utilizes some of the CPP content (such as one or both of the PcRs), but does *not* attach the 1.70 or 1.71 haks to the module to require the players to have the CPP.... would they see the the CPP content/changes? This is assuming that the module builder does not add any of their own over-writing 2da's or scripts, but rather installs the CPP, and builds away in the toolset without attaching any custom haks/or haks which do not overwrite CPP content)
In this case, the CPP content won't be accessable/visible/useable. Specifically, any new itemproperties gets lost as if they werent there (item cost parameter property), creatures with shou disciple/eye of gruums levels will lose those levels (or maybe get replaced by barbarian? not sure I havent really tried this), new adjustable traps will do nothing when triggered.
This is definitely a case where the builder should add the patch1.71 hak into module properties as he actually relies on that content. Playing such module without CPP will result into incomplete experiences. But it wont crash game, that I know for sure.
2) How would the reverse be handled? If a player with the CPP installed logs onto a PW that was not built with the CPP, nor have any haks/scripts that overwrite the same files the CPP does, would that player be able to take levels in the PrCs? And how would their spells/special abilities behave on the non CPP server if the server has not modied the relevant scripts itself? Would other non CPP players see the CPP enabled shou/eye abilities? Would spells such as invisibility circle and circle against alignment function as per CPP, or the default non-CPP bioware behavior?
In this situation, all that actually manifest are client side graphical fixes and improvements, almost everything else is controlled by a server with a few exceptions:
- player will be able to take epic spells with the CPP manner (17lvl caster/18sorc).
- player will see Shou Disciple and Eye of Gruumsh in a class list when levelling up. I am not sure whether they will be selectable if conditions will be met, probably yes, but if player chooses any of the two, server will not allow to complete levelling up and player will have to redo levelling
- some NWNCX features such as possibility to select non standard base class and possibility to put counterspell into quickslot will be possible, other features are again controlled by server
Player cannot interfere with server files - it doesnt matter what player got in override/haks/anywhere, all that player is able to modify is a visual appearance. You can make all creatures looks like chickens but only you will see this. And so on. So, safety speaking there are no issues.
From a module maker standpoint... exactly what purpose do the CPP haks mentioned above serve other than to "require" CPP to be installed? I understand there's some tweaks to the appearance.2da, and then there's the classes 2da's....
Yes there are some additional tweaks so you can call it a purpose. Features and changes that I thought that should be part of CPP but that would crashed game in situation you described in case #1 thus they need to be in hak.
but if I merge the CPP haks into my module's haks, would the players downloading the module still be required to install the CPP because the cpp's hak contents are now part of my module's own haks
Well, they would still needed it. I mean, by incorporating the patch171.hak files into your own haks, you will be able to use the hidden appearances or new baseitems (stackable miscs) without risking that player without CPP wont see them. But the hak still doesnt contain classes.2da and itemproperty 2das that are handling those two problematic features that player without CPP wont see. You would have to put those 2das into your haks as well (which is minor licence/permission abuse but I dont care). Same for adjustable traps or swinging blade traps - wont work unless you add also scripts for them into your haks/module (again a licensed)