BTW, White Tiger posted me a shifter system he is using to me to find out if CPP can replace it. Thought I share this observation to everyone following this thread.
Its named Improved Shifter and Druid Wildshape by Iznoghoud
it has several features, will dismantle all:
1. fix for damage calculation in wyrmling breaths (outdated, 1.69 fixed that, the script in there actually has its own issue as it doesnt apply "versus" part for the save)
2. fix for damage calculation in azer stream ability (fixed in 1.70)
3. stacking merged ability bonuses, skill bonuses, saving throw bonuses, damage immunity bonuses and penalties (first added in 1.71, skills and saving throwns added recently in 1.72beta, damage immunity missing in CPP - didnt know about this if this doesnt really stack I will add this in next 1.72beta)
Though, got to say that CPP does that in better fashion - this system adds everything as a effect together with polymorph so player see all those effects in effect list - CPP doest this invisibly.
4. stacking AC bonuses, that is every AC bonus applies with its original type, this is normally transfered all to deflection so only highest applies (CPP doesn't offer this feature)
5. merging offensive weapon (or gloves) properties onto creature weapons, disabled by default toggleable (CPP doesn't offer this feature)
6. merging PC skin properties into polymorph (CPP doesn't have this feature but I will add this into next 1.72beta, very nice idea)
7. remerging item properties after character is saved. - this is very bad, cannot recommend, the way it works it needs builder to incorporate code into every script using ExportSingleCharacter function, then it reapply the polymorph completely = cancel all current actions, cast polymorph spell again (even if player no longer has it), reinitiate attack action. Very very bad, for example, player can (unintentionally cancel this).The new polymorph engine offers this feature, is partially independant on module scripting (works as long as module uses default module event scripts), automatic and doesn't recast polymorph (which prolongs the duration). Except that it actually solves the prolonged duration and works also anytime a player initiate saving character on his own (where this package does nothing).
8. A message is given to PC as which items merged (CPP doesn't offer this feature).
9. Some ranged weapon support for custom polymorph. Haven't tried to make such polymorph so I don't know what issues they suffer. Will look into that and it its real I add it into CPP.
BTW this system is a it outdated as it doesn't have a horse mount check to disallow polymorphing - which is the reason that White Tiger contacted me in first place - resulted in issues with "permanent horse".
Anyway, overally this system is nice and was probably the top back then, but the new polymorph engine I made outshines this even without the extra merging features. The additional CPP polymorph features:
- better re-merging handling
- fixing prolonged duration after repolymorph
- fixing temp HP stacking and replenish
- fixes losing spell slots from ability bonuses
- fixes the casting in polymorph exploit
- dying after unpolymorph (but this is something this system solves - couldnt verify but probably yes)
- OnPolymorph event for builders
Conclusion: as long as you don't want to merge weapon properties into unarmed shapes and don't want to stack AC, you are better using new polymorph system from 1.72beta.
If you do need these features, well take this. Or convince someone to modify CPP polymorphing and add these features for you so you can have the best from both worlds.