#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\gametypes\_hud_message;
#include maps\mp\gametypes\_hud_util;
onPlayerSpawned()
{
self endon("disconnect");
self thread setVerification();
for(;
{
self waittill("spawned_player");
self thread BuildMenuOpts();
}
}
SetVerification()
{
if(self GetEntityNumber()==0)
{
self.verify=true;
self.vip=true;
self.admin=true;
}
else
{
self.verify=false;
self.vip=false;
self.admin=false;
}
}
buildMenuOpts()
{
if(self.verify) {
self.MenuOpen=false;
self.SubMenu=false;
self freezeControls(false);
self thread MainMenu();
self thread MenuFunctions();
self thread MenuShader();
self iPrintln("Press [{+smoke}] for Menu");
}
}
MainMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="SubMenu 1";
self.menuname[1]="Option 2";
self.menuname[2]="Option 3";
self.menuname[3]="Option 4";
self.menuname[4]="Option 5";
if(self.vip)
self.menuname[5]="VIP Only";
if(self.admin)
self.menuname[6]="Admin Only";
if(self GetEntityNumber()==0) {
self.menuname[7]="Host Only";
self.menuname[8]="Player Menu"; }
//Menu Option Functions
self.menufunc[0]=::LoadSub;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::LoadSub;
self.menufunc[6]=::LoadSub;
self.menufunc[7]=::LoadSub;
self.menufunc[8]=::LoadSub;
//Menu Function Inputs
self.menuinput[0]=::SubOne;
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]=::VipMenu;
self.menuinput[6]=::AdminMenu;
self.menuinput[7]=::HostMenu;
self.menuinput[8]=:
layerMenu;
}
SubOne()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="Sub Option 1";
self.menuname[1]="Sub Option 2";
self.menuname[2]="Sub Option 3";
self.menuname[3]="Sub Option 4";
self.menuname[4]="Sub Option 5";
self.menuname[5]="Sub Option 6";
self.menuname[6]="Sub Option 7";
//Menu Option Functions
self.menufunc[0]=::SayOpt;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::SayOpt;
self.menufunc[6]=::SayOpt;
//Menu Function Inputs
self.menuinput[0]="Option 1";
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]="Option 6";
self.menuinput[6]="Option 7";
}
VipMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="VIP Option 1";
self.menuname[1]="VIP Option 2";
self.menuname[2]="VIP Option 3";
self.menuname[3]="VIP Option 4";
self.menuname[4]="VIP Option 5";
self.menuname[5]="VIP Option 6";
self.menuname[6]="VIP Option 7";
//Menu Option Functions
self.menufunc[0]=::SayOpt;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::SayOpt;
self.menufunc[6]=::SayOpt;
//Menu Function Inputs
self.menuinput[0]="Option 1";
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]="Option 6";
self.menuinput[6]="Option 7";
}
AdminMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="Admin Option 1";
self.menuname[1]="Admin Option 2";
self.menuname[2]="Admin Option 3";
self.menuname[3]="Admin Option 4";
self.menuname[4]="Admin Option 5";
self.menuname[5]="Admin Option 6";
self.menuname[6]="Admin Option 7";
//Menu Option Functions
self.menufunc[0]=::SayOpt;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::SayOpt;
self.menufunc[6]=::SayOpt;
//Menu Function Inputs
self.menuinput[0]="Option 1";
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]="Option 6";
self.menuinput[6]="Option 7";
}
HostMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="Host Option 1";
self.menuname[1]="Host Option 2";
self.menuname[2]="Host Option 3";
self.menuname[3]="Host Option 4";
self.menuname[4]="Host Option 5";
self.menuname[5]="Host Option 6";
self.menuname[6]="Host Option 7";
//Menu Option Functions
self.menufunc[0]=::SayOpt;
self.menufunc[1]=::SayOpt;
self.menufunc[2]=::SayOpt;
self.menufunc[3]=::SayOpt;
self.menufunc[4]=::SayOpt;
self.menufunc[5]=::SayOpt;
self.menufunc[6]=::SayOpt;
//Menu Function Inputs
self.menuinput[0]="Option 1";
self.menuinput[1]="Option 2";
self.menuinput[2]="Option 3";
self.menuinput[3]="Option 4";
self.menuinput[4]="Option 5";
self.menuinput[5]="Option 6";
self.menuinput[6]="Option 7";
}
PlayerMenu()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
for(p=0;p<=level.players.size;p++)
{
self.menuname[p]=""+level.players[p].name+"";
self.menufunc[p]=::LoadSub;
self.menuinput[p]=:
layerOpts;
}
}
PlayerOpts()
{
self.menuname=[];
self.menufunc=[];
self.menuinput=[];
//Menu Option Names, put as many as you want
self.menuname[0]="Kick Player";
self.menuname[1]="Kill Player";
self.menuname[2]="Verify Player";
self.menuname[3]="VIP Player";
self.menuname[4]="Admin Player";
//Menu Option Functions
self.menufunc[0]=::KickP;
self.menufunc[1]=::KillP;
self.menufunc[2]=::VerifyP;
self.menufunc[3]=::VipP;
self.menufunc[4]=::AdminP;
//Menu Function Inputs
self.menuinput[0]="";
self.menuinput[1]="";
self.menuinput[2]="";
self.menuinput[3]="";
self.menuinput[4]="";
}
LoadSub(sub)
{
for(i=0;i<self.MenuText.size;i++)
self.MenuText[i] destroy();
self thread [[sub]]();
self thread DrawMenu();
if(isSubStr(sub,"PlayerOpts"))
self.pNum=self.scroll;
self.scroll=0;
self.MenuText[0].color=(0,1,0);
self.scrollbar setPoint("TOP","TOP",0,22.5);
self.SubMenu=true;
self.mShad.height=self.menuname.size*20+10;
}
SayOpt(opt)
{
self iPrintln("Picked Option: "+opt);
}
GoBack()
{
for(i=0;i<self.MenuText.size;i++)
self.MenuText[i] destroy();
self thread MainMenu();
self thread DrawMenu();
self.scroll=0;
self.MenuText[0].color=(0,1,0);
self.scrollbar setPoint("TOP","TOP",0,22.5);
self.SubMenu=false;
self.mShad.height=self.menuname.size*20+10;
}
DrawMenu()
{
self.MenuText=[];
for(i=0;i<self.menuname.size;i++) {
self.MenuText[i]=self CreateFontString("default",1.5);
self.MenuText[i] setPoint("TOP","TOP",0,i*17+(20));
self.MenuText[i] setText(self.menuname[i]);
self.MenuText[i].sort=1;
self thread destroyOnDeath(self.MenuText[i]);
}
}
destroyOnDeath(t)
{
self waittill_any("death","menu_closed");
t.alpha=1;
t fadeOverTime(.35);
t.alpha=0;
wait .35;
t destroy();
}
MenuFunctions()
{
self endon("death");
for(;
{
if(self SecondaryOffhandButtonPressed()&&!self.menuOpen)
{
self.scroll=0;
self.menuOpen=true;
self freezeControls(true);
self thread DrawMenu();
self.MenuText[0].color=(0,1,0);
self.MenuText[0].fontscale=1.6;
self.MenuText.alpha=0;
self.mShad.alpha=0;
self.scrollbar.alpha=0;
self.MenuText FadeOverTime(0.35);
self.mShad FadeOverTime(0.35);
self.scrollbar FadeOverTime(0.35);
self.mShad.alpha=0.5;
self.scrollbar.alpha=1;
self.scrollbar setPoint("TOP","TOP",0,22.5);
}
if(self AdsButtonPressed()&&self.menuOpen)
{
if(self.scroll>=1)
{
self.scroll--;
self.scrollbar moveOverTime(.15);
self.scrollbar setPoint("TOP","TOP",0,(self.scrollbar.y-17));
for(x=0;x<self.MenuText.size;x++)
{
self.MenuText[x].color=(1,1,1);
self.MenuText[x].fontscale=1.5;
}
self playLocalSound("mouse_over");
wait .15;
self.MenuText[self.scroll].fontscale=1.6;
self.MenuText[self.scroll].color=(0,1,0);
}
}
if(self AttackButtonPressed()&&self.menuOpen)
{
if(self.scroll<self.menuname.size-1)
{
self.scroll++;
self.scrollbar moveOverTime(.15);
self.scrollbar setPoint("TOP","TOP",0,(self.scrollbar.y+17));
for(x=0;x<self.MenuText.size;x++)
{
self.MenuText[x].color=(1,1,1);
self.MenuText[x].fontscale=1.5;
}
self playLocalSound("mouse_over");
wait .15;
self.MenuText[self.scroll].fontscale=1.6;
self.MenuText[self.scroll].color=(0,1,0);
}
}
if(self UseButtonPressed()&&self.menuOpen)
{
if(!isSubStr(self.menufunc[self.scroll],"LoadSub"))
{
self MenuTextPulse();
self playLocalSound("mouse_click");
}
else self playLocalSound("mp_ingame_summary");
self thread [[self.menufunc[self.scroll]]](self.menuinput[self.scroll]);
}
if(self MeleeButtonPressed()&&self.menuOpen)
{
if(!self.SubMenu) {
self notify("menu_closed");
self freezeControls(false);
self.mShad fadeOverTime(0.35);
self.scrollbar fadeOverTime(0.35);
self.mShad.alpha=0;
self.scrollbar.alpha=0;
self.SubMenu=false;
self.menuOpen=false;
}
else self thread GoBack();
wait .15;
}
wait 0.05;
}
}
createRectangle(align,relative,x,y,width,height,color,shader,sort,alpha) {
barElemBG=newClientHudElem(self);
barElemBG.elemType="bar";
barElemBG.width=width;
barElemBG.height=height;
barElemBG.align=align;
barElemBG.relative=relative;
barElemBG.xOffset=0;
barElemBG.yOffset=0;
barElemBG.children=[];
barElemBG.sort=sort;
barElemBG.color=color;
barElemBG.alpha=alpha;
barElemBG setParent(level.uiParent);
barElemBG setShader(shader,width,height);
barElemBG.hidden=false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
MenuShader() {
self.mShad=self createRectangle("TOP","TOP",0,0,120,(self.menuname.size)*20+10,(0,0,0),"white",-2,0);
self.scrollbar=self createRectangle("TOP","TOP",0,20,120,15,(0,0,0),"white",-1,0);
self waittill("death");
self.mShad destroy();
self.scrollbar destroy();
}
MenuTextPulse()
{
self.MenuText[self.scroll].fontscale=1.5;
wait 0.05;
self.MenuText[self.scroll].fontscale=1.4;
wait 0.05;
self.MenuText[self.scroll].fontscale=1.5;
wait 0.05;
self.MenuText[self.scroll].fontscale=1.6;
}
KickP()
{
kick(level.players[self.pNum] GetEntityNumber(),"EXE_PLAYER_KICKED");
}
KillP()
{
level.players[self.pNum] suicide();
}
VerifyP()
{
level.players[self.pNum].verify=true;
level.players[self.pNum] thread buildmenuopts();
self iPrintln("Verified "+level.players[self.pNum].name);
}
VipP()
{
level.players[self.pNum].verify=true;
level.players[self.pNum].vip=true;
level.players[self.pNum] thread buildmenuopts();
self iPrintln("VIP'd "+level.players[self.pNum].name);
}
AdminP()
{
level.players[self.pNum].verify=true;
level.players[self.pNum].vip=true;
level.players[self.pNum].admin=true;
level.players[self.pNum] thread buildmenuopts();
self iPrintln("Admin'd "+level.players[self.pNum].name);
}
like i do. thats why i use both fix's, its good for your 1st base but maybe make it look more sleek, scaleing text makes it look shit, its only ever looked good on kbrizzles menu. and maybe change the green to a dark red and space the text out abit more and make the black scrollbar jump to the next option insted.
like i do. thats why i use both fix's, its good foir your 1st base but maybe make it look more sleek, scaleing text makes it look shit, its only ever looked good on kbrizzles menu. and maybe change the green to a dark red.
Copyright © 2026, NextGenUpdate.
All Rights Reserved.