Hello  again, I have another script, it's bigger, longer and meaner.
It works (now, it took me 3 days) but as usual, there's a pretty high chance I've added useless stuff and miss some important one, so please, can you check my homework again??
Here's what the scripts do:
It's a piece of clothing called "music sheet".
When I equip it, I don't want to have it equipped (I used skipequio, not sure I did it right).
Then, if I have one of the 4 lutes (they are weapons) , and if it's drawn, the music is streamed.
But also! I want a spell to be given depending on which lute is equipped and only as long as the lute is equip (but not drawn) and the music sheet in the inventory.
Begin aa_sheetmusic04_script        short OnPCEquip    short PCSkipEquip        set PCSkipEquip to 1    if ( OnPCEquip == 1 )          if ( player->HasItemEquipped "aa_lute_weap_play" == 1 )            If ( Player -> GetWeaponDrawn )                StreamMusic, "Bard\Lute4.mp3"                set gamehour to ( gamehour + 1 )                set aaBardExp to ( aaBardExp + 1 )                fadeout, 10                fadein, 10                StartScript "aa_RemoveSheetMusic04"            endif        elseif ( player->HasItemEquipped "aa_EBlute_weap_play" == 1 )            If ( Player -> GetWeaponDrawn )                StreamMusic, "Bard\Lute4.mp3"                set gamehour to ( gamehour + 1 )                set aaBardExp to ( aaBardExp + 1 )                fadeout, 10                fadein, 10                StartScript "aa_RemoveSheetMusic04"            endif        elseif ( player->HasItemEquipped "aa_KOlute_weap_play" == 1 )            If ( Player -> GetWeaponDrawn )                StreamMusic, "Bard\Lute4.mp3"                set gamehour to ( gamehour + 1 )                set aaBardExp to ( aaBardExp + 1 )                fadeout, 10                fadein, 10                StartScript "aa_RemoveSheetMusic04"            endif        elseif ( player->HasItemEquipped "aa_PJMlute_weap_play" == 1 )            If ( Player -> GetWeaponDrawn )                StreamMusic, "Bard\Lute4.mp3"                set gamehour to ( gamehour + 1 )                set aaBardExp to ( aaBardExp + 1 )                fadeout, 10                fadein, 10                StartScript "aa_RemoveSheetMusic04"            endif        endif        set OnPCEquip to 0    endif        if ( player->HasItemEquipped "aa_lute_weap_play" == 1 )        If ( ( player->GetItemCount, "aa_lute_sheetmusic04" ) != 0 )            If ( ( ScriptRunning, "aa_scorespell04acontrol" ) != 1 )                If ( MenuMode == 0 )                    player->AddSpell, "aa_scorespell04a"                    StartScript, "aa_scorespell04acontrol"                endif            endif        endif      elseif ( player->HasItemEquipped "aa_EBlute_weap_play" == 1 )        If ( ( player->GetItemCount, "aa_lute_sheetmusic04" ) != 0 )            If ( ( ScriptRunning, "aa_scorespell04bcontrol" ) != 1 )                If ( MenuMode == 0 )                    player->AddSpell, "aa_scorespell04b"                    StartScript, "aa_scorespell04bcontrol"                endif            endif        endif    elseif ( player->HasItemEquipped "aa_KOlute_weap_play" == 1 )        If ( ( player->GetItemCount, "aa_lute_sheetmusic04" ) != 0 )            If ( ( ScriptRunning, "aa_scorespell04ccontrol" ) != 1 )                If ( MenuMode == 0 )                    player->AddSpell, "aa_scorespell04c"                    StartScript, "aa_scorespell04ccontrol"                endif            endif        endif    elseif ( player->HasItemEquipped "aa_PJMlute_weap_play" == 1 )        If ( ( player->GetItemCount, "aa_lute_sheetmusic04" ) != 0 )            If ( ( ScriptRunning, "aa_scorespell04dcontrol" ) != 1 )                If ( MenuMode == 0 )                    player->AddSpell, "aa_scorespell04d"                    StartScript, "aa_scorespell04dcontrol"                endif            endif        endif        endif    end
This is the first global script used when a song is played to avoid the duplication of the music sheet (it's a glove btw) if used from a quick key
Begin aa_RemoveSheetMusic04        short frameCounter        set frameCounter to ( frameCounter + 1 )        if ( frameCounter < 2 ) ; let music script finish executing        return    else        player->RemoveItem "aa_lute_sheetmusic04" 1        player->AddItem "aa_lute_sheetmusic04" 1        set frameCounter to 0        StopScript "aa_RemoveSheetMusic04"    endif    End
 And finally, this script removes the spell if the conditions aren't met anymore. There are 4 variants of this script (a, b, c and d) for each variant of the spell.
begin aa_scorespell04acontrol         If ( ( player->GetItemCount, "aa_lute_sheetmusic04" ) == 0 )        If ( MenuMode == 0 )              player->RemoveSpell, "aa_scorespell04a"            StopScript, aa_scorespell04acontrol        endif    elseif ( player->HasItemEquipped "aa_lute_weap_play" == 0 )          If ( MenuMode == 0 )              player->RemoveSpell, "aa_scorespell04a"            StopScript, aa_scorespell04acontrol        endif    endifEnd
PHEW! 
So, what do you think? Do I have a potential CTD sympathiser?