This header seems pretty useful..

Here's something I made with it
Code:
//This script creates an enemy that walks left to right between solid combos,
//similar to a Goomba from Super Mario Bros.
//Set D0 to 0 to start right and 1 to start left.
//D1 = Enemy type to use for ghosting
ffc script goomba_left_right
{

    void run(bool startleft, int enemtype)
    {
    npc goomba;
    int timer;
    bool left;
    bool right;
    
    if(startleft){left = true; right = false;} else {right = true; left = false;}

    goomba=GhostInitCreate(this, enemtype);
    SetFlags(this, GHF_NORMAL);

    timer = 2;
    
    for(int i=0; true; i++)
    {
        if(i==timer)
        {
        i=0;

        if(!right && left && CanMove(this,goomba,2,1,0)) Move(this,goomba,-1,0,0); else right = true;
        if(right && CanMove(this,goomba,3,1,0))Move(this,goomba,1,0,0); else { left = true; right = false;}

        }

        GhostWaitframeF(this, goomba, true, true);
    }
    
    
}
}
And the up/down one for good measure.

Code:
//This script creates an enemy that walks down and up between solid combos,
//Set D0 to 0 to start down and 1 to start up.
//D1 = Enemy type to use for ghosting

ffc script goomba_up_down
{

    void run(bool startup, int enemtype)
    {
    npc goomba;
    int timer;
    bool up;
    bool down;
    
    if(startup){up = true; down = false;} else {down = true; up = false;}

    goomba=GhostInitCreate(this, enemtype);
    SetFlags(this, GHF_NORMAL);

    timer = 2;
    
    for(int i=0; true; i++)
    {
        if(i==timer)
        {
        i=0;

        if(!down && up && CanMove(this,goomba,0,1,0)) Move(this,goomba,0,-1,0); else down = true;
        if(down && CanMove(this,goomba,1,1,0))Move(this,goomba,0,1,0); else { up = true; down = false;}

        }

        GhostWaitframeF(this, goomba, true, true);
    }
    
    
}
}
If you're going to use these, be sure to import "ghost.zh"!

EDIT: I am a very poor scripter, so a tutorial on how to put together a custom boss with this would be very nice