All right, big update. Complete overhaul, in fact. Here are the biggest changes this version:
Most enemy properties are now handled by global variables. There are only two standard Waitframe functions, Ghost_Waitframe and Ghost_Waitframe2. There's also a Ghost_WaitframeLight, but that'll generally be used only when the enemy is inactive. A lot of things that used to require a function can now be done just be setting one of the global variables. You can, for instance, set Ghost_HP to set the enemy's HP, set Ghost_CSet to change its CSet, or set Ghost_Data to change its combo, even if GHF_4WAY is set.
There are two major new eweapon death options. First, you can create a dummy eweapon with whatever properties you like, including its own scripted movement, and have an eweapon spawn copies of it on death. Second, you can set up an FFC to run a script where the eweapon died, so you can do whatever you like there.
Finally, the biggest new addition, AutoGhost. With appropriately written enemy scripts, the global script can set up FFCs automatically when enemies appear. That means scripted enemies can be used as easily as built-in ones, with no manual FFC setup at all. This requires at least RC2.
This version is not backward compatible with existing scripts. However, there is a separate file, ghost_legacy.zh, included for this purpose.
Also, thanks to Blaman/SpacemanDan for putting up with me through this. I know I can get a bit impatient at times. :p
ghost.zh
Demo quest and sample scripts
AutoGhost enemies
AutoGhost setup demo video