H/T to Jim's Fixes and Tweaks, this is a modification to his 'Add expiration notifications for buffs'.
The existing "Add expiration notifications" does not show the expirations for certain spells that are programmed to prevent stacking.
This includes spells like SPPR111 Armor of Faith, SPPR306 Protection from Fire, many of the new priest spells from IWD Divine Spell Pack, etc.
The reason is these particular BG2EE spells buffs prevent stacking with the effect "Removal:effects specified by resource " opcode 321. The existing "Add expiration" adds expiration notice effects to the beginning of a spell's extended headers. That means they get ignored because they're followed by the effect opcode 321.
This new file used in conjunction with Jim's Fixes and Tweaks fixes the problem. Now the text display effects are all written at the end of each spell header rather than the beginning, and so they're not ignored as a result of opcode 321.
I've playtested on v2.5 and all the non-stackable spells like Armor of Faith now correctly show the buff expirations. No reason to think it won't work on 2.3.
I've added a few extra spells in here as well which you can freely edit, delete, add to, etc. Open the .tph file and see the comments for the new spells.
I like to have some non-buff spells such as Grease, Web, Cloudkill etc. display expirations. Note that in the .tph file, they're added to the 'target the caster' section rather than the 'affects a target' section. You can move those around as desired. If you're Webbing 10 enemies, however, the dialogue box gets jammed up with expirations on each target AND the timers stack each time the enemy fails another save. Total mess. Keeping the expiration on 'caster' means you see a single timer counting down 30 seconds, 12 seconds, 6, etc. simply so you know when your spell is about to end.
I've also added expirations for some IWD Divine Spellpack spells like Recitation. If you're not using that mod (or any other spell in the file, like all the SCS pre-casted spells), they're simply ignored.
Prior to install, back up your existing jimfix expirations.tph, unzip my file and rename it to expirations.tph in the same file location.
In practice, I do a BigWorld install and do NOT select 'Add expiration notifications for buffs'. I download Jim's Fixes separately, replace his expirations.tph as described here, and then install Setup-jimfix.exe manually.