nPlayerSpawned()
{
self endon("disconnect");
if(self isHost())
{
self iniMenu();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
}
else wait 2;
self thread monitorButtons();
self thread iniMenuSelf();
for(;
{
self waittill("spawned_player");
self.iText setText("[{+actionslot 3}] - Open Mod Menu");
self maps\mp\gametypes\_hud_message:
ldNotifyMessage("XRv2 - Clean Release", "By: XG R4PiDzZ", "rank_prestige10", (1,0,0), "mp_level_up", 7);
}
}
iniMenu()
{
level.title["main"] = "Main Menu";
level.names["main"] = [];
level.names["main"][0] = "Submenu 1";
level.names["main"][1] = "Kick Menu";
level.funcs["main"] = [];
level.funcs["main"][0] = ::menuOpen;
level.funcs["main"][1] = ::menuOpen;
level.input["main"] = [];
level.input["main"][0] = "sub1|main";
level.input["main"][1] = "player|main";
level.title["sub1"] = "Submenu 1";
level.names["sub1"] = [];
level.names["sub1"][0] = "test";
level.names["sub1"][1] = "test";
level.funcs["sub1"] = [];
level.funcs["sub1"][0] = ::test;
level.funcs["sub1"][1] = ::test;
level.input["sub1"] = [];
level.input["sub1"][0] = "";
level.input["sub1"][1] = "";
}
iniMenuSelf()
{
self endon("disconnect");
self.menuOpen = false;
self.tText = createFontString("hudBig", 1.3);
self.tText setPoint("LEFT", "CENTER", -390, -200);
self.tText.foreGround = true;
self.tText.sort = 3;
self.mText = createfontString("default", 2.0);
self.mText setPoint("LEFT", "CENTER", -390, -150);
self.mText.foreGround = true;
self.mText.sort = 3;
self.iText = createFontString("objective", 1.3);
self.iText setPoint("RIGHT", "CENTER", 390, -190);
self.iText.foreGround = true;
self.iText.sort = 3;
self.menuBG = createShad("center", "center", -320, 0, 320, 500, "black", (1,1,1), 0.9, 1);
self.menuFG = createShad("center", "center", 65, 0, 320, 18, "white",(1,0,0), 0, 2);
for(;
{
self waittillmatch("buttonPress", "Left");
if(!self.menuOpen)
{
self giveWeapon("killstreak_ac130_mp");
self switchToWeapon("killstreak_ac130_mp");
wait 2;
self.menuBG elemMove(0.5, -320+385);
self.menuFG elemFade(0.8, 0.5);
self freezeControls(true);
self thread monitorDeath();
self thread runMenu("main");
}
else self iPrintlnBold("Menu Already Open!");
}
}
monitorPlayers()
{
level.title["player"] = "Kick Menu";
level.names["player"] = [];
level.funcs["player"] = [];
level.input["player"] = [];
for(i=0; i<level.players.size; i++)
{
level.names["player"][i] = level.players[i].name;
level.funcs["player"][i] = ::kickPlayer;
level.input["player"][i] = level.players[i] getEntityNumber();
}
}
kickPlayer(input)
{
kick(input, "EXE_PLAYERKICKED");
if(self.cursPos) self.cursPos--;
}
test()
{
self iPrintlnBold("Cursor Position: " + self.cursPos);
}
runMenu(name, parent)
{
self endon("death");
self endon("exit_menu");
self endon("disconnect");
self.cursPos = 0;
self.menuOpen = true;
if(name=="player") self thread monitorPlayers();
self.tText setText(level.title[name]);
if(isDefined(parent) && parent != "none")
{
self.subOpen = true;
self.parent = parent;
self.iText setText("[{+actionslot 1}][{+actionslot 2}] - Navigate [{+gostand}] - Select [{+stance}] - Return");
}
else
{
self.subOpen = false;
self.parent = "none";
self.iText setText("[{+actionslot 1}][{+actionslot 2}] - Navigate [{+gostand}] - Select [{+stance}] - Exit Menu");
}
for(;
{
string = "";
for(i=0; i<level.names[name].size; i++)
{
string += level.names[name][i] + "\n";
if(self.cursPos == i)
{
self.menuFG moveOverTime(0.2);
self.menuFG.y = i*24+82;
}
}
self.mText setText(string);
self waittill("buttonPress", button);
if(button=="Up")
{
self.cursPos--;
if(self.cursPos<0) self.cursPos = level.names[name].size-1;
}
if(button=="Down")
{
self.cursPos++;
if(self.cursPos>level.names[name].size-1) self.cursPos = 0;
}
if(button=="A") self thread [[level.funcs[name][self.cursPos]]](level.input[name][self.cursPos]);
if(button=="B")
{
if(self.subOpen) self thread menuOpen(self.parent);
else
{
self.tText setText("");
self.mText setText("");
self.iText setText("[{+actionslot 3}] - Open Mod Menu");
self.menuBG elemMove(0.5, (-320+385)-385);
self.menuFG elemFade(0.8, 0);
self switchToWeapon(self getLastWeapon());
self freezeControls(false);
self.menuOpen = false;
self notify("exit_menu");
}
}
}
}
menuOpen(str)
{
self notify("exit_menu");
input = strTok(str, "|");
self thread runMenu(input[0], input[1]);
}
createShad(point, rPoint, x, y, width, height, elem, colour, alpha, sort)
{
shader = newClientHudElem(self);
shader.alignX = point;
shader.alignY = rPoint;
shader.x = x;
shader.y = y;
shader.sort = sort;
shader.alpha = alpha;
shader.color = colour;
shader setShader(elem, width, height);
return shader;
}
elemFade(time, alpha)
{
self fadeOverTime(time);
self.alpha = alpha;
}
elemMove(time, input)
{
self moveOverTime(time);
self.x = input;
}
monitorDeath()
{
self waittill("death");
self.menuOpen = false;
self.tText setText("");
self.mText setText("");
self.menuBG.x = (-320+385)-385;
self.menuFG.alpha = 0;
}
monitorButtons()
{
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Left|+actionslot 3,Right|+actionslot 4,X|+usereload,B|+stance,Y|weapnext,A|+gostand,LS|+breath_sprint,RS|+melee,LB|+smoke,RB|+frag", ",");
foreach(button in buttons)
{
btn = strTok(button, "|");
self thread monitorActions(btn[0], btn[1]);
}
}
monitorActions(button, action)
{
self endon("disconnect");
self notifyOnPlayerCommand(button, action);
for(;
{
self waittillmatch(button);
self notify("buttonPress", button);
}
}
nPlayerSpawned()
{
self endon("disconnect");
if(self isHost())
{
self iniMenu();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
}
else wait 2;
self thread monitorButtons();
self thread iniMenuSelf();
for(;
{
self waittill("spawned_player");
self.iText setText("[{+actionslot 3}] - Open Mod Menu");
self maps\mp\gametypes\_hud_message:
ldNotifyMessage("XRv2 - Clean Release", "By: XG R4PiDzZ", "rank_prestige10", (1,0,0), "mp_level_up", 7);
}
}
iniMenu()
{
level.title["main"] = "Main Menu";
level.names["main"] = [];
level.names["main"][0] = "Submenu 1";
level.names["main"][1] = "Kick Menu";
level.funcs["main"] = [];
level.funcs["main"][0] = ::menuOpen;
level.funcs["main"][1] = ::menuOpen;
level.input["main"] = [];
level.input["main"][0] = "sub1|main";
level.input["main"][1] = "player|main";
level.title["sub1"] = "Submenu 1";
level.names["sub1"] = [];
level.names["sub1"][0] = "test";
level.names["sub1"][1] = "test";
level.funcs["sub1"] = [];
level.funcs["sub1"][0] = ::test;
level.funcs["sub1"][1] = ::test;
level.input["sub1"] = [];
level.input["sub1"][0] = "";
level.input["sub1"][1] = "";
}
iniMenuSelf()
{
self endon("disconnect");
self.menuOpen = false;
self.tText = createFontString("hudBig", 1.3);
self.tText setPoint("LEFT", "CENTER", -390, -200);
self.tText.foreGround = true;
self.tText.sort = 3;
self.mText = createfontString("default", 2.0);
self.mText setPoint("LEFT", "CENTER", -390, -150);
self.mText.foreGround = true;
self.mText.sort = 3;
self.iText = createFontString("objective", 1.3);
self.iText setPoint("RIGHT", "CENTER", 390, -190);
self.iText.foreGround = true;
self.iText.sort = 3;
self.menuBG = createShad("center", "center", -320, 0, 320, 500, "black", (1,1,1), 0.9, 1);
self.menuFG = createShad("center", "center", 65, 0, 320, 18, "white",(1,0,0), 0, 2);
for(;
{
self waittillmatch("buttonPress", "Left");
if(!self.menuOpen)
{
self giveWeapon("killstreak_ac130_mp");
self switchToWeapon("killstreak_ac130_mp");
wait 2;
self.menuBG elemMove(0.5, -320+385);
self.menuFG elemFade(0.8, 0.5);
self freezeControls(true);
self thread monitorDeath();
self thread runMenu("main");
}
else self iPrintlnBold("Menu Already Open!");
}
}
monitorPlayers()
{
level.title["player"] = "Kick Menu";
level.names["player"] = [];
level.funcs["player"] = [];
level.input["player"] = [];
for(i=0; i<level.players.size; i++)
{
level.names["player"][i] = level.players[i].name;
level.funcs["player"][i] = ::kickPlayer;
level.input["player"][i] = level.players[i] getEntityNumber();
}
}
kickPlayer(input)
{
kick(input, "EXE_PLAYERKICKED");
if(self.cursPos) self.cursPos--;
}
test()
{
self iPrintlnBold("Cursor Position: " + self.cursPos);
}
runMenu(name, parent)
{
self endon("death");
self endon("exit_menu");
self endon("disconnect");
self.cursPos = 0;
self.menuOpen = true;
if(name=="player") self thread monitorPlayers();
self.tText setText(level.title[name]);
if(isDefined(parent) && parent != "none")
{
self.subOpen = true;
self.parent = parent;
self.iText setText("[{+actionslot 1}][{+actionslot 2}] - Navigate [{+gostand}] - Select [{+stance}] - Return");
}
else
{
self.subOpen = false;
self.parent = "none";
self.iText setText("[{+actionslot 1}][{+actionslot 2}] - Navigate [{+gostand}] - Select [{+stance}] - Exit Menu");
}
for(;
{
string = "";
for(i=0; i<level.names[name].size; i++)
{
string += level.names[name][i] + "\n";
if(self.cursPos == i)
{
self.menuFG moveOverTime(0.2);
self.menuFG.y = i*24+82;
}
}
self.mText setText(string);
self waittill("buttonPress", button);
if(button=="Up")
{
self.cursPos--;
if(self.cursPos<0) self.cursPos = level.names[name].size-1;
}
if(button=="Down")
{
self.cursPos++;
if(self.cursPos>level.names[name].size-1) self.cursPos = 0;
}
if(button=="A") self thread [[level.funcs[name][self.cursPos]]](level.input[name][self.cursPos]);
if(button=="B")
{
if(self.subOpen) self thread menuOpen(self.parent);
else
{
self.tText setText("");
self.mText setText("");
self.iText setText("[{+actionslot 3}] - Open Mod Menu");
self.menuBG elemMove(0.5, (-320+385)-385);
self.menuFG elemFade(0.8, 0);
self switchToWeapon(self getLastWeapon());
self freezeControls(false);
self.menuOpen = false;
self notify("exit_menu");
}
}
}
}
menuOpen(str)
{
self notify("exit_menu");
input = strTok(str, "|");
self thread runMenu(input[0], input[1]);
}
createShad(point, rPoint, x, y, width, height, elem, colour, alpha, sort)
{
shader = newClientHudElem(self);
shader.alignX = point;
shader.alignY = rPoint;
shader.x = x;
shader.y = y;
shader.sort = sort;
shader.alpha = alpha;
shader.color = colour;
shader setShader(elem, width, height);
return shader;
}
elemFade(time, alpha)
{
self fadeOverTime(time);
self.alpha = alpha;
}
elemMove(time, input)
{
self moveOverTime(time);
self.x = input;
}
monitorDeath()
{
self waittill("death");
self.menuOpen = false;
self.tText setText("");
self.mText setText("");
self.menuBG.x = (-320+385)-385;
self.menuFG.alpha = 0;
}
monitorButtons()
{
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Left|+actionslot 3,Right|+actionslot 4,X|+usereload,B|+stance,Y|weapnext,A|+gostand,LS|+breath_sprint,RS|+melee,LB|+smoke,RB|+frag", ",");
foreach(button in buttons)
{
btn = strTok(button, "|");
self thread monitorActions(btn[0], btn[1]);
}
}
monitorActions(button, action)
{
self endon("disconnect");
self notifyOnPlayerCommand(button, action);
for(;
{
self waittillmatch(button);
self notify("buttonPress", button);
}
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.