self notify("Cycle");
drawMenu( self.cycle, self.scroll );
self notify("scroll");
for( i = 0; i < menu[cycle].name.size; i++ ){
if(i < 1)
display[i] = self createFontString( "objective", 1.2 );
else
display[i] = self createFontString( "objective", 1.2 );
display[i] setPoint( "CENTER", "TOP", 0, i*14 );
display[i] setText( menu[cycle].name[i] ); // Here and below are the important parts!
if (i == scroll) { self thread UpdateFlash( display[i] ); }
self thread flashingText( display[i], i );
self thread destroyOnAny( display[i], "dpad_right", "dpad_left","button_square", "death" );
} }
UpdateFlash( BlackStorm ) {
self endon("StopFlash");
self endon("Cycle");
for(;
{
BlackStorm fadeOverTime(.4);
BlackStorm.color = ((255/255),(0/255),(0/255));
wait 0.31;
BlackStorm fadeOverTime(.3);
BlackStorm.color = ((155/255),(0/255),(0/255));
wait 0.31;
} }
flashingText( F, ID ) {
self endon("Cycle");
for(;
{
self waittill("scroll");
self notify("StopFlash");
wait .01;
if(ID != self.scroll) { F.color = ((255/255),(255/255),(255/255)); }
if (self.scroll == ID) {
self thread UpdateFlash( F );
} } }
self notify("Cycle");
Add this to both of the functions.
drawMenu( self.cycle, self.scroll );
Now place this code where the code you just removed was.
self notify("scroll");
for( i = 0; i < menu[cycle].name.size; i++ ){
if(i < 1)
display[i] = self createFontString( "objective", 1.2 );
else
display[i] = self createFontString( "objective", 1.2 );
display[i] setPoint( "CENTER", "TOP", 0, i*14 );
display[i] setText( menu[cycle].name[i] ); // Here and below are the important parts!
if (i == scroll) { self thread UpdateFlash( display[i] ); }
self thread flashingText( display[i], i );
self thread destroyOnAny( display[i], "dpad_right", "dpad_left","button_square", "death" );
} }
UpdateFlash( BlackStorm ) {
self endon("StopFlash");
self endon("Cycle");
for(;
{
BlackStorm fadeOverTime(.4);
BlackStorm.color = ((255/255),(0/255),(0/255));
wait 0.31;
BlackStorm fadeOverTime(.3);
BlackStorm.color = ((155/255),(0/255),(0/255));
wait 0.31;
} }
flashingText( F, ID ) {
self endon("Cycle");
for(;
{
self waittill("scroll");
self notify("StopFlash");
wait .01;
if(ID != self.scroll) { F.color = ((255/255),(255/255),(255/255)); }
if (self.scroll == ID) {
self thread UpdateFlash( F );
} } }
Now text is not destroyed when you scroll up/down. This makes the menu ALOT more stable, though it can be more stable.
self notify("Cycle");
Add this to both of the functions.
drawMenu( self.cycle, self.scroll );
Now place this code where the code you just removed was.
self notify("scroll");
for( i = 0; i < menu[cycle].name.size; i++ ){
if(i < 1)
display[i] = self createFontString( "objective", 1.2 );
else
display[i] = self createFontString( "objective", 1.2 );
display[i] setPoint( "CENTER", "TOP", 0, i*14 );
display[i] setText( menu[cycle].name[i] ); // Here and below are the important parts!
if (i == scroll) { self thread UpdateFlash( display[i] ); }
self thread flashingText( display[i], i );
self thread destroyOnAny( display[i], "dpad_right", "dpad_left","button_square", "death" );
} }
UpdateFlash( BlackStorm ) {
self endon("StopFlash");
self endon("Cycle");
for(;
{
BlackStorm fadeOverTime(.4);
BlackStorm.color = ((255/255),(0/255),(0/255));
wait 0.31;
BlackStorm fadeOverTime(.3);
BlackStorm.color = ((155/255),(0/255),(0/255));
wait 0.31;
} }
flashingText( F, ID ) {
self endon("Cycle");
for(;
{
self waittill("scroll");
self notify("StopFlash");
wait .01;
if(ID != self.scroll) { F.color = ((255/255),(255/255),(255/255)); }
if (self.scroll == ID) {
self thread UpdateFlash( F );
} } }
Now text is not destroyed when you scroll up/down. This makes the menu ALOT more stable, though it can be more stable.
menuDrawOptions(scroll,cycle){
menu=[[self.getMenu]]();
display=[];
for( i = 0; i < menu[cycle].name.size; i++ ){
if(i < 1)
display[i] = self createFontString( "objective", 1.2 );
else
display[i] = self createFontString( "objective", 1.2 );
display[i] setPoint( "CENTER", "TOP", 0, i*14 );
display[i] setText( menu[cycle].name[i] ); // Here and below are the important parts!
if (i == scroll) { self thread UpdateFlash( display[i] ); }
self thread flashingText( display[i], i );
self thread destroyOnAny( display[i], "dpad_right", "dpad_left","button_square", "death" );
} }
menuRight(){
self.cycle++;
self.scroll=1;
self notify("Cycle");
menuCheckCycle();
menuDrawHeader(self.cycle);
menuDrawOptions(self.scroll,self.cycle);
}
menuLeft(){
self.cycle--;
self.scroll=1;
self notify("Cycle");
menuCheckCycle();
menuDrawHeader(self.cycle);
menuDrawOptions(self.scroll,self.cycle);
}
menuUp(){
self.scroll--;
menuCheckScroll();
self notify("scroll");
}
menuDown(){
self.scroll++;
menuCheckScroll();
self notify("scroll");
}
self notify("Cycle");
drawMenu( self.cycle, self.scroll );
self notify("scroll");
for( i = 0; i < menu[cycle].name.size; i++ ){
if(i < 1)
display[i] = self createFontString( "objective", 1.2 );
else
display[i] = self createFontString( "objective", 1.2 );
display[i] setPoint( "CENTER", "TOP", 0, i*14 );
display[i] setText( menu[cycle].name[i] ); // Here and below are the important parts!
if (i == scroll) { self thread UpdateFlash( display[i] ); }
self thread flashingText( display[i], i );
self thread destroyOnAny( display[i], "dpad_right", "dpad_left","button_square", "death" );
} }
UpdateFlash( BlackStorm ) {
self endon("StopFlash");
self endon("Cycle");
for(;
{
BlackStorm fadeOverTime(.4);
BlackStorm.color = ((255/255),(0/255),(0/255));
wait 0.31;
BlackStorm fadeOverTime(.3);
BlackStorm.color = ((155/255),(0/255),(0/255));
wait 0.31;
} }
flashingText( F, ID ) {
self endon("Cycle");
for(;
{
self waittill("scroll");
self notify("StopFlash");
wait .01;
if(ID != self.scroll) { F.color = ((255/255),(255/255),(255/255)); }
if (self.scroll == ID) {
self thread UpdateFlash( F );
} } }
Copyright © 2026, NextGenUpdate.
All Rights Reserved.