There are certain problems with working on old, large software such as ZC. One major problem I have is the amount of state under the hood is incomprehensible (in a practical sense) when you realize it has to support every quirk in every quest ever made. In the past if I ever had to look into bugs or features that change even one single bit of state, I have to, at minimum, find every single place in the code where this could directly or indirectly effect logic, then, if so, repeat the same process for each new thing that pops up. If this process also includes realizing that every script also has complete control of this then that's all folks; it's either rewrite the whole subsystem in question to an overly-complicated-don't-break-compatability specification, or just give up altogether.

A few years ago I suggested using a new scripting language. This would allow new systems to be created that can simply piggy-back off the old ones but also be tightly coupled with scripts that can actually rewrite built-in behaviors without having major issues or losing compatability (or creating bugs with existing quests). The new npc scripts and supporting of various global callbacks I envisioned would be a good test of that experiment before doing anything else with that. ...It's not been worked on really, but it should be. .. :/

I think I'm going to make putting in the compiler/script processor/script engine my next priority besides the few other things I have here. Even if it's not used immediately, if I can get a ZScript->angelscript conversion utility working you might take it more seriously.