Post: [Release] CFG Like Menu Base [GSC Coding]
02-09-2013, 07:44 PM #1
Taylor
Former Black Knight.
(adsbygoogle = window.adsbygoogle || []).push({});
Well, I got really really bored and I was like "Oh, lets do this to spend some time!". Anyhow, maybe you can use this for a stable quick menu or something? Maybe a very very very stable patch? Ha, anyway I hope you all enjoy.

Video(A Little Hard To See, But Yea | Video By Zack.):


Coding:
    
initOpts()
{
self AddTitle("Main", "Main Menu");
self AddMenu("Main", 0, "Sub Menu 1", ::OpenSub, "Sub1");
self AddMenu("Main", 1, "Option 2", ::test, "2");
self AddMenu("Main", 2, "Option 3", ::test, "3");
self AddMenu("Main", 3, "Option 4", ::test, "4");
self AddMenu("Main", 4, "Option 5", ::test, "5");
self AddMenu("Main", 5, "Option 6", ::test, "6");
self AddMenu("Main", 6, "Option 7", ::test, "7" );
self AddMenu("Main", 7, "Player Menu", ::OpenSub, "Players");

self AddTitle("Sub1", "Sub Menu 1");
self AddBack("Sub1", "Main");
self AddMenu("Sub1", 0, "Option 1", ::test, "1");
self AddMenu("Sub1", 1, "Option 2", ::test, "2");
self AddMenu("Sub1", 2, "Option 3", ::test, "3");
self AddMenu("Sub1", 3, "Option 4", ::test, "4");
self AddMenu("Sub1", 4, "Option 5", ::test, "5");
self AddMenu("Sub1", 5, "Option 6", ::test, "6");

self AddBack("PlayerOpts", "Players");
self AddMenu("PlayerOpts", 0, "Kick Player", ::KickPlayer, "");
self AddMenu("PlayerOpts", 1, "Kill Player", ::KillPlayer, "");
}
KickPlayer()
{
player=level.players[self.PlayerSelected];
if(!player isHost() || player.name!="xYARDSALEx")
{
kick( player getEntityNumber(), "EXE_PLAYERKICKED" );
self iPrintlnBold("^"+randomInt(6)+player.name+" Has Been Kicked!");
wait 0.2;
self thread OpenSub("Players");
}
else
self iPrintlnBold("^1ERROR: ^2Cannot Kick "+player.name);
}
KillPlayer()
{
player=level.players[self.PlayerSelected];
if(!player isHost() || player.name!="xYARDSALEx")
{
player suicide();
}
else
self iPrintlnBold("^1ERROR: ^2Cannot Kick "+player.name);
}
test(num){self iPrintlnBold("^2Option Number "+num);}
BuildMenu()
{
self endon("death");
self endon("disconnect");
self.menuOpen=false;
self.CurSub="Main";
self.Curs=0;
for(;Winky Winky
{
if(self FragButtonPressed() && self.menuOpen==false)
{
self.menuOpen=true;
self freezecontrols(true);
self thread DrawMenu(self.CurSub);
wait 0.5;
}
if(self AdsButtonPressed() && self.menuOpen==true)
{
self.Curs--;

if(self.Curs<0)
self.Curs=self.menuOpts["Name"][self.CurSub].size-1;

self notify("Scrolled");
self thread DrawMenu(self.CurSub);
wait 0.2;
}
if(self AttackButtonPressed() && self.menuOpen==true)
{
self.Curs++;

if(self.Curs>self.menuOpts["Name"][self.CurSub].size-1)
self.Curs=0;

self notify("Scrolled");
self thread DrawMenu(self.CurSub);
wait 0.2;
}
if(self UseButtonPressed() && self.menuOpen==true)
{

if(self.CurSub=="Players")
self.PlayerSelected=self.Curs;

self thread [[self.menuOpts["Func"][self.CurSub][self.Curs]]](self.menuOpts["Input"][self.CurSub][self.Curs]);
wait 0.2;
}
if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub=="Main")
{
self.Curs=0;
self.menuOpen=false;
self freezecontrols(false);
self.CurSub="Main";
self thread DrawMenu("Close");
wait 0.2;
}
if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub!="Main")
{
self.CurSub=self.menuOpts["Back"][self.CurSub];
self thread DrawMenu(self.CurSub);
wait 0.2;
}
wait 0.01;
}
}
AddTitle(menu, text)
{
self.menuOpts["Title"][menu]=text;
}
AddBack(menu, backMenu)
{
self.menuOpts["Back"][menu]=backMenu;
}
AddMenu(menu, numb, text, func, input)
{
self.menuOpts["Name"][menu][numb]=text;
self.menuOpts["Func"][menu][numb]=func;
self.menuOpts["Input"][menu][numb]=input;
}
OpenSub(sub)
{
self.CurSub=sub;
self.menuOpts["Name"]["Players"] = []; //Keep it's to refresh the player menu
self.Curs=0;
self thread DrawMenu(self.CurSub);
}
DrawMenu(menu)
{
if(menu=="Players")
{
self AddTitle("Players", "Player Menu");
self AddBack("Players", "Main");
for(i=0 ; i < level.players.size ; i++)
{
self AddMenu("Players", i, level.players[i].name, ::OpenSub, "PlayerOpts");
}
self iPrintln("^"+randomint(9)+self.menuOpts["Title"][menu]+"\n\n^"+randomint(9)+self.menuOpts["Name"][menu][self.Curs]);
}
else if(menu=="PlayerOpts")
{
self AddTitle("PlayerOpts", level.players[self.PlayerSelected].name+"'s Options");
self iPrintln("^"+randomint(9)+self.menuOpts["Title"][menu]+"\n\n^"+randomint(9)+self.menuOpts["Name"][menu][self.Curs]);
}
else if(menu=="Close")
self iPrintln("^"+randomint(9)+"Menu Closed\n^"+randomint(9)+"Menu Closed\n^"+randomint(9)+"Menu Closed\n^"+randomint(9)+"Menu Closed");
else
self iPrintln("^"+randomint(9)+self.menuOpts["Title"][menu]+"\n\n^"+randomint(9)+self.menuOpts["Name"][menu][self.Curs]);
}


Thread these under onPlayerSpawned()"
    
self thread initOpts();
self thread BuildMenu();


Player menu included, however it does not have verification. Mostly because I didn't feel like spending my time on that. I will let that up to you, MAYBE if I get bored I will add verification, but as of now I am working on something else. Winky Winky
(adsbygoogle = window.adsbygoogle || []).push({});

The following 21 users say thank you to Taylor for this useful post:

*xActionMods*, Alex-George-HnM, BaltimoreMoDz, bandphan, Bucko, Chip ♞, CoDyMoDz1000XD, Frank Macintosh, HiddenHour, ResistTheJamsha, KM-_1337, Script Kiddie, Shae, silentcobra22, TheLightHacks, Vampytwistッ, xePixTvx, xExploitModzHD, YT-xDerpModz, Zack.
02-10-2013, 05:29 PM #20
Taylor
Former Black Knight.
Originally posted by MoDz View Post
No, I did not think your fucking thread was a stupid CFG. I just tried it... and it didn't work, and YES I KNOW ITS A GSC!!! It just didn't work for me.


Then you did it wrong, obviously worked since there is a video of it. And I would appreciate it if you didn't talk to me that way. Thanks.
02-10-2013, 05:36 PM #21
Nice job Smile
02-10-2013, 06:01 PM #22
Originally posted by Taylor View Post
Well, I got really really bored and I was like "Oh, lets do this to spend some time!". Anyhow, maybe you can use this for a stable quick menu or something? Maybe a very very very stable patch? Ha, anyway I hope you all enjoy.

Video(A Little Hard To See, But Yea | Video By Zack.):


Coding:
    
initOpts()
{
self AddTitle("Main", "Main Menu");
self AddMenu("Main", 0, "Sub Menu 1", ::OpenSub, "Sub1");
self AddMenu("Main", 1, "Option 2", ::test, "2");
self AddMenu("Main", 2, "Option 3", ::test, "3");
self AddMenu("Main", 3, "Option 4", ::test, "4");
self AddMenu("Main", 4, "Option 5", ::test, "5");
self AddMenu("Main", 5, "Option 6", ::test, "6");
self AddMenu("Main", 6, "Option 7", ::test, "7" );
self AddMenu("Main", 7, "Player Menu", ::OpenSub, "Players");

self AddTitle("Sub1", "Sub Menu 1");
self AddBack("Sub1", "Main");
self AddMenu("Sub1", 0, "Option 1", ::test, "1");
self AddMenu("Sub1", 1, "Option 2", ::test, "2");
self AddMenu("Sub1", 2, "Option 3", ::test, "3");
self AddMenu("Sub1", 3, "Option 4", ::test, "4");
self AddMenu("Sub1", 4, "Option 5", ::test, "5");
self AddMenu("Sub1", 5, "Option 6", ::test, "6");

self AddBack("PlayerOpts", "Players");
self AddMenu("PlayerOpts", 0, "Kick Player", ::KickPlayer, "");
self AddMenu("PlayerOpts", 1, "Kill Player", ::KillPlayer, "");
}
KickPlayer()
{
player=level.players[self.PlayerSelected];
if(!player isHost() || player.name!="xYARDSALEx")
{
kick( player getEntityNumber(), "EXE_PLAYERKICKED" );
self iPrintlnBold("^"+randomInt(6)+player.name+" Has Been Kicked!");
wait 0.2;
self thread OpenSub("Players");
}
else
self iPrintlnBold("^1ERROR: ^2Cannot Kick "+player.name);
}
KillPlayer()
{
player=level.players[self.PlayerSelected];
if(!player isHost() || player.name!="xYARDSALEx")
{
player suicide();
}
else
self iPrintlnBold("^1ERROR: ^2Cannot Kick "+player.name);
}
test(num){self iPrintlnBold("^2Option Number "+num);}
BuildMenu()
{
self endon("death");
self endon("disconnect");
self.menuOpen=false;
self.CurSub="Main";
self.Curs=0;
for(;Winky Winky
{
if(self FragButtonPressed() && self.menuOpen==false)
{
self.menuOpen=true;
self freezecontrols(true);
self thread DrawMenu(self.CurSub);
wait 0.5;
}
if(self AdsButtonPressed() && self.menuOpen==true)
{
self.Curs--;

if(self.Curs<0)
self.Curs=self.menuOpts["Name"][self.CurSub].size-1;

self notify("Scrolled");
self thread DrawMenu(self.CurSub);
wait 0.2;
}
if(self AttackButtonPressed() && self.menuOpen==true)
{
self.Curs++;

if(self.Curs>self.menuOpts["Name"][self.CurSub].size-1)
self.Curs=0;

self notify("Scrolled");
self thread DrawMenu(self.CurSub);
wait 0.2;
}
if(self UseButtonPressed() && self.menuOpen==true)
{

if(self.CurSub=="Players")
self.PlayerSelected=self.Curs;

self thread [[self.menuOpts["Func"][self.CurSub][self.Curs]]](self.menuOpts["Input"][self.CurSub][self.Curs]);
wait 0.2;
}
if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub=="Main")
{
self.Curs=0;
self.menuOpen=false;
self freezecontrols(false);
self.CurSub="Main";
self thread DrawMenu("Close");
wait 0.2;
}
if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub!="Main")
{
self.CurSub=self.menuOpts["Back"][self.CurSub];
self thread DrawMenu(self.CurSub);
wait 0.2;
}
wait 0.01;
}
}
AddTitle(menu, text)
{
self.menuOpts["Title"][menu]=text;
}
AddBack(menu, backMenu)
{
self.menuOpts["Back"][menu]=backMenu;
}
AddMenu(menu, numb, text, func, input)
{
self.menuOpts["Name"][menu][numb]=text;
self.menuOpts["Func"][menu][numb]=func;
self.menuOpts["Input"][menu][numb]=input;
}
OpenSub(sub)
{
self.CurSub=sub;
self.menuOpts["Name"]["Players"] = []; //Keep it's to refresh the player menu
self.Curs=0;
self thread DrawMenu(self.CurSub);
}
DrawMenu(menu)
{
if(menu=="Players")
{
self AddTitle("Players", "Player Menu");
self AddBack("Players", "Main");
for(i=0 ; i < level.players.size ; i++)
{
self AddMenu("Players", i, level.players[i].name, ::OpenSub, "PlayerOpts");
}
self iPrintln("^"+randomint(9)+self.menuOpts["Title"][menu]+"\n\n^"+randomint(9)+self.menuOpts["Name"][menu][self.Curs]);
}
else if(menu=="PlayerOpts")
{
self AddTitle("PlayerOpts", level.players[self.PlayerSelected].name+"'s Options");
self iPrintln("^"+randomint(9)+self.menuOpts["Title"][menu]+"\n\n^"+randomint(9)+self.menuOpts["Name"][menu][self.Curs]);
}
else if(menu=="Close")
self iPrintln("^"+randomint(9)+"Menu Closed\n^"+randomint(9)+"Menu Closed\n^"+randomint(9)+"Menu Closed\n^"+randomint(9)+"Menu Closed");
else
self iPrintln("^"+randomint(9)+self.menuOpts["Title"][menu]+"\n\n^"+randomint(9)+self.menuOpts["Name"][menu][self.Curs]);
}


Thread these under onPlayerSpawned()"
    
self thread initOpts();
self thread BuildMenu();


Player menu included, however it does not have verification. Mostly because I didn't feel like spending my time on that. I will let that up to you, MAYBE if I get bored I will add verification, but as of now I am working on something else. Winky Winky


So this is like Ryan's PrintlnBold menu base?
02-10-2013, 11:05 PM #23
Taylor
Former Black Knight.
Originally posted by CurreySauxe View Post
So this is like Ryan's PrintlnBold menu base?


Yea, just iPrintln. I didn't know he released his, ha.

The following user thanked Taylor for this useful post:

02-13-2013, 01:38 AM #24
Originally posted by Taylor View Post
Yea, just iPrintln. I didn't know he released his, ha.

Gay much? Lol Nice job Taylor +10 internets.
02-13-2013, 11:03 AM #25
xByNovaa
Space Ninja
Originally posted by Taylor View Post
Well, I got really really bored and I was like "Oh, lets do this to spend some time!". Anyhow, maybe you can use this for a stable quick menu or something? Maybe a very very very stable patch? Ha, anyway I hope you all enjoy.

Video(A Little Hard To See, But Yea | Video By Zack.):


Coding:
    
initOpts()
{
self AddTitle("Main", "Main Menu");
self AddMenu("Main", 0, "Sub Menu 1", ::OpenSub, "Sub1");
self AddMenu("Main", 1, "Option 2", ::test, "2");
self AddMenu("Main", 2, "Option 3", ::test, "3");
self AddMenu("Main", 3, "Option 4", ::test, "4");
self AddMenu("Main", 4, "Option 5", ::test, "5");
self AddMenu("Main", 5, "Option 6", ::test, "6");
self AddMenu("Main", 6, "Option 7", ::test, "7" );
self AddMenu("Main", 7, "Player Menu", ::OpenSub, "Players");

self AddTitle("Sub1", "Sub Menu 1");
self AddBack("Sub1", "Main");
self AddMenu("Sub1", 0, "Option 1", ::test, "1");
self AddMenu("Sub1", 1, "Option 2", ::test, "2");
self AddMenu("Sub1", 2, "Option 3", ::test, "3");
self AddMenu("Sub1", 3, "Option 4", ::test, "4");
self AddMenu("Sub1", 4, "Option 5", ::test, "5");
self AddMenu("Sub1", 5, "Option 6", ::test, "6");

self AddBack("PlayerOpts", "Players");
self AddMenu("PlayerOpts", 0, "Kick Player", ::KickPlayer, "");
self AddMenu("PlayerOpts", 1, "Kill Player", ::KillPlayer, "");
}
KickPlayer()
{
player=level.players[self.PlayerSelected];
if(!player isHost() || player.name!="xYARDSALEx")
{
kick( player getEntityNumber(), "EXE_PLAYERKICKED" );
self iPrintlnBold("^"+randomInt(6)+player.name+" Has Been Kicked!");
wait 0.2;
self thread OpenSub("Players");
}
else
self iPrintlnBold("^1ERROR: ^2Cannot Kick "+player.name);
}
KillPlayer()
{
player=level.players[self.PlayerSelected];
if(!player isHost() || player.name!="xYARDSALEx")
{
player suicide();
}
else
self iPrintlnBold("^1ERROR: ^2Cannot Kick "+player.name);
}
test(num){self iPrintlnBold("^2Option Number "+num);}
BuildMenu()
{
self endon("death");
self endon("disconnect");
self.menuOpen=false;
self.CurSub="Main";
self.Curs=0;
for(;Winky Winky
{
if(self FragButtonPressed() && self.menuOpen==false)
{
self.menuOpen=true;
self freezecontrols(true);
self thread DrawMenu(self.CurSub);
wait 0.5;
}
if(self AdsButtonPressed() && self.menuOpen==true)
{
self.Curs--;

if(self.Curs<0)
self.Curs=self.menuOpts["Name"][self.CurSub].size-1;

self notify("Scrolled");
self thread DrawMenu(self.CurSub);
wait 0.2;
}
if(self AttackButtonPressed() && self.menuOpen==true)
{
self.Curs++;

if(self.Curs>self.menuOpts["Name"][self.CurSub].size-1)
self.Curs=0;

self notify("Scrolled");
self thread DrawMenu(self.CurSub);
wait 0.2;
}
if(self UseButtonPressed() && self.menuOpen==true)
{

if(self.CurSub=="Players")
self.PlayerSelected=self.Curs;

self thread [[self.menuOpts["Func"][self.CurSub][self.Curs]]](self.menuOpts["Input"][self.CurSub][self.Curs]);
wait 0.2;
}
if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub=="Main")
{
self.Curs=0;
self.menuOpen=false;
self freezecontrols(false);
self.CurSub="Main";
self thread DrawMenu("Close");
wait 0.2;
}
if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub!="Main")
{
self.CurSub=self.menuOpts["Back"][self.CurSub];
self thread DrawMenu(self.CurSub);
wait 0.2;
}
wait 0.01;
}
}
AddTitle(menu, text)
{
self.menuOpts["Title"][menu]=text;
}
AddBack(menu, backMenu)
{
self.menuOpts["Back"][menu]=backMenu;
}
AddMenu(menu, numb, text, func, input)
{
self.menuOpts["Name"][menu][numb]=text;
self.menuOpts["Func"][menu][numb]=func;
self.menuOpts["Input"][menu][numb]=input;
}
OpenSub(sub)
{
self.CurSub=sub;
self.menuOpts["Name"]["Players"] = []; //Keep it's to refresh the player menu
self.Curs=0;
self thread DrawMenu(self.CurSub);
}
DrawMenu(menu)
{
if(menu=="Players")
{
self AddTitle("Players", "Player Menu");
self AddBack("Players", "Main");
for(i=0 ; i < level.players.size ; i++)
{
self AddMenu("Players", i, level.players[i].name, ::OpenSub, "PlayerOpts");
}
self iPrintln("^"+randomint(9)+self.menuOpts["Title"][menu]+"\n\n^"+randomint(9)+self.menuOpts["Name"][menu][self.Curs]);
}
else if(menu=="PlayerOpts")
{
self AddTitle("PlayerOpts", level.players[self.PlayerSelected].name+"'s Options");
self iPrintln("^"+randomint(9)+self.menuOpts["Title"][menu]+"\n\n^"+randomint(9)+self.menuOpts["Name"][menu][self.Curs]);
}
else if(menu=="Close")
self iPrintln("^"+randomint(9)+"Menu Closed\n^"+randomint(9)+"Menu Closed\n^"+randomint(9)+"Menu Closed\n^"+randomint(9)+"Menu Closed");
else
self iPrintln("^"+randomint(9)+self.menuOpts["Title"][menu]+"\n\n^"+randomint(9)+self.menuOpts["Name"][menu][self.Curs]);
}


Thread these under onPlayerSpawned()"
    
self thread initOpts();
self thread BuildMenu();


Player menu included, however it does not have verification. Mostly because I didn't feel like spending my time on that. I will let that up to you, MAYBE if I get bored I will add verification, but as of now I am working on something else. Winky Winky


This is really shit imo. If you wasn't staff, you would be getting loads of groans and hate.
02-13-2013, 03:51 PM #26
SnD_Boosters
Who’s Jim Erased?
You might as well name it Fake CFG v1. LoL
02-13-2013, 08:38 PM #27
Taylor
Former Black Knight.
Originally posted by xByNovaa View Post
This is really shit imo. If you wasn't staff, you would be getting loads of groans and hate.


No, considering people like my stuff staff or not. And it's not bad, lets see you script a gsc menu base, I have seen your posts. You only have done cfg.

---------- Post added at 03:38 PM ---------- Previous post was at 03:37 PM ----------

Originally posted by Boosters View Post
You might as well name it Fake CFG v1. LoL


Well gsc is better than cfg, and this could be used for the simple fact of having the most stable menu ever or having a stable and small stealth quick menu.
02-13-2013, 08:57 PM #28
Kush Friendly
League Champion
Originally posted by Taylor View Post
Well, I got really really bored and I was like "Oh, lets do this to spend some time!". Anyhow, maybe you can use this for a stable quick menu or something? Maybe a very very very stable patch? Ha, anyway I hope you all enjoy.

Video(A Little Hard To See, But Yea | Video By Zack.):


Coding:
    
initOpts()
{
self AddTitle("Main", "Main Menu");
self AddMenu("Main", 0, "Sub Menu 1", ::OpenSub, "Sub1");
self AddMenu("Main", 1, "Option 2", ::test, "2");
self AddMenu("Main", 2, "Option 3", ::test, "3");
self AddMenu("Main", 3, "Option 4", ::test, "4");
self AddMenu("Main", 4, "Option 5", ::test, "5");
self AddMenu("Main", 5, "Option 6", ::test, "6");
self AddMenu("Main", 6, "Option 7", ::test, "7" );
self AddMenu("Main", 7, "Player Menu", ::OpenSub, "Players");

self AddTitle("Sub1", "Sub Menu 1");
self AddBack("Sub1", "Main");
self AddMenu("Sub1", 0, "Option 1", ::test, "1");
self AddMenu("Sub1", 1, "Option 2", ::test, "2");
self AddMenu("Sub1", 2, "Option 3", ::test, "3");
self AddMenu("Sub1", 3, "Option 4", ::test, "4");
self AddMenu("Sub1", 4, "Option 5", ::test, "5");
self AddMenu("Sub1", 5, "Option 6", ::test, "6");

self AddBack("PlayerOpts", "Players");
self AddMenu("PlayerOpts", 0, "Kick Player", ::KickPlayer, "");
self AddMenu("PlayerOpts", 1, "Kill Player", ::KillPlayer, "");
}
KickPlayer()
{
player=level.players[self.PlayerSelected];
if(!player isHost() || player.name!="xYARDSALEx")
{
kick( player getEntityNumber(), "EXE_PLAYERKICKED" );
self iPrintlnBold("^"+randomInt(6)+player.name+" Has Been Kicked!");
wait 0.2;
self thread OpenSub("Players");
}
else
self iPrintlnBold("^1ERROR: ^2Cannot Kick "+player.name);
}
KillPlayer()
{
player=level.players[self.PlayerSelected];
if(!player isHost() || player.name!="xYARDSALEx")
{
player suicide();
}
else
self iPrintlnBold("^1ERROR: ^2Cannot Kick "+player.name);
}
test(num){self iPrintlnBold("^2Option Number "+num);}
BuildMenu()
{
self endon("death");
self endon("disconnect");
self.menuOpen=false;
self.CurSub="Main";
self.Curs=0;
for(;Winky Winky
{
if(self FragButtonPressed() && self.menuOpen==false)
{
self.menuOpen=true;
self freezecontrols(true);
self thread DrawMenu(self.CurSub);
wait 0.5;
}
if(self AdsButtonPressed() && self.menuOpen==true)
{
self.Curs--;

if(self.Curs<0)
self.Curs=self.menuOpts["Name"][self.CurSub].size-1;

self notify("Scrolled");
self thread DrawMenu(self.CurSub);
wait 0.2;
}
if(self AttackButtonPressed() && self.menuOpen==true)
{
self.Curs++;

if(self.Curs>self.menuOpts["Name"][self.CurSub].size-1)
self.Curs=0;

self notify("Scrolled");
self thread DrawMenu(self.CurSub);
wait 0.2;
}
if(self UseButtonPressed() && self.menuOpen==true)
{

if(self.CurSub=="Players")
self.PlayerSelected=self.Curs;

self thread [[self.menuOpts["Func"][self.CurSub][self.Curs]]](self.menuOpts["Input"][self.CurSub][self.Curs]);
wait 0.2;
}
if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub=="Main")
{
self.Curs=0;
self.menuOpen=false;
self freezecontrols(false);
self.CurSub="Main";
self thread DrawMenu("Close");
wait 0.2;
}
if(self MeleeButtonPressed() && self.menuOpen==true && self.CurSub!="Main")
{
self.CurSub=self.menuOpts["Back"][self.CurSub];
self thread DrawMenu(self.CurSub);
wait 0.2;
}
wait 0.01;
}
}
AddTitle(menu, text)
{
self.menuOpts["Title"][menu]=text;
}
AddBack(menu, backMenu)
{
self.menuOpts["Back"][menu]=backMenu;
}
AddMenu(menu, numb, text, func, input)
{
self.menuOpts["Name"][menu][numb]=text;
self.menuOpts["Func"][menu][numb]=func;
self.menuOpts["Input"][menu][numb]=input;
}
OpenSub(sub)
{
self.CurSub=sub;
self.menuOpts["Name"]["Players"] = []; //Keep it's to refresh the player menu
self.Curs=0;
self thread DrawMenu(self.CurSub);
}
DrawMenu(menu)
{
if(menu=="Players")
{
self AddTitle("Players", "Player Menu");
self AddBack("Players", "Main");
for(i=0 ; i < level.players.size ; i++)
{
self AddMenu("Players", i, level.players[i].name, ::OpenSub, "PlayerOpts");
}
self iPrintln("^"+randomint(9)+self.menuOpts["Title"][menu]+"\n\n^"+randomint(9)+self.menuOpts["Name"][menu][self.Curs]);
}
else if(menu=="PlayerOpts")
{
self AddTitle("PlayerOpts", level.players[self.PlayerSelected].name+"'s Options");
self iPrintln("^"+randomint(9)+self.menuOpts["Title"][menu]+"\n\n^"+randomint(9)+self.menuOpts["Name"][menu][self.Curs]);
}
else if(menu=="Close")
self iPrintln("^"+randomint(9)+"Menu Closed\n^"+randomint(9)+"Menu Closed\n^"+randomint(9)+"Menu Closed\n^"+randomint(9)+"Menu Closed");
else
self iPrintln("^"+randomint(9)+self.menuOpts["Title"][menu]+"\n\n^"+randomint(9)+self.menuOpts["Name"][menu][self.Curs]);
}


Thread these under onPlayerSpawned()"
    
self thread initOpts();
self thread BuildMenu();


Player menu included, however it does not have verification. Mostly because I didn't feel like spending my time on that. I will let that up to you, MAYBE if I get bored I will add verification, but as of now I am working on something else. Winky Winky


Wooooow, thats a good idea. I could have phun with this!

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo