
cTagEditor()
{
self endon("death");
self endon("disconnect");
ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ !-_@#$%^&*{}";
curs = 0;
letter = 0;
ctag = self createFontString( "hudbig", .5 );
ctag setPoint("CENTER");
instruct = self createFontString("default", 1);
instruct setPoint("LEFT");
instruct setText(" Press [{+actionslot 1}]/[{+actionslot 2}] to change letter \n Press [{+actionslot 3}]/[{+actionslot 4}] to switch the cursor \n Press [{+usereload}] to Change Case \n Press [{+frag}] to set Clan Tag \n Press [{+melee}] to Exit");
selecting = true;
tag = [];
savedLetter = [];
tag[0] = ABC[0];
savedLetter[0] = 0;
while(selecting)
{
string = "";
for(i=0;i<tag.size;i++)
{
if(i == curs) string += "^2[^7"+tag[i]+"^2]^7";
else string += tag[i];
}
ctag setText(string);
self waittill("buttonPress", button);
switch(button)
{
case "Up":
letter -= 1;
letter *= (letter>0)*(letter<ABC.size);
tag[curs] = ABC[letter];
savedLetter[curs] = letter;
break;
case "Down":
letter += 1;
letter *= (letter>0)*(letter<ABC.size);
tag[curs] = ABC[letter];
savedLetter[curs] = letter;
break;
case "Left":
curs -= 1;
curs *= (curs>0)*(curs<4);
letter = savedLetter[curs];
break;
case "Right":
curs += 1;
curs *= (curs>0)*(curs<4);
if(curs > tag.size-1)
{
savedLetter[savedLetter.size] = 0;
tag[tag.size] = ABC[0];
}
letter = savedLetter[curs];
break;
case "A":
newTag = "";
for(i=0;i<tag.size;i++) newTag += tag[i];
self setClientDvar("clanname", newTag );
self iPrintlnBold("ClanTag modded to : " + newTag);
break;
case "B":
selecting = false;
break;
case "X":
tag[curs] = tolower(tag[curs]);
break;
default:
break;
}
}
wait 1;
ctag destroy();
instruct destroy();
}
self thread monitor_PlayerButtons(); // << Add to onSpawnedPlayer() after the waittill.
monitor_PlayerButtons(){
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Left|+actionslot 3,Right|+actionslot 4,X|+usereload,B|+melee,Y|weapnext,A|+gostand,LS|+breath_sprint,RS|+stance,LB|+smoke,RB|+frag", ",");
foreach ( button in buttons )
{
btn = strTok(button, "|");
self thread monitorButtons(btn[0], btn[1]);
}
}
monitorButtons( button, action ){
self endon ( "disconnect" );
self endon ( "death" );
self notifyOnPlayerCommand( button, action );
for ( ;; ) {
self waittillmatch( button );
self notify( "buttonPress", button );
}
}
classMaker()
{
self endon("death");
self endon("disconnect");
ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ !@#$%^&*()";
header = self createFontString("hudbig", 1.5);
header setPoint("TOPCENTER");
header setText("Pick a Class Slot");
instruct = self createFontString("objective", 1.2);
instruct setPoint("LEFT");
instruct setText(" Press [{+actionslot 1}]/[{+actionslot 2}] to change slot/letter \n Press [{+actionslot 3}]/[{+actionslot 4}] to switch the cursor \n Press [{+smoke}]/[{+frag}] to Change Color \n Press [{+gostand}] to select \n Press [{+melee}] to Exit");
disp = self createFontString("objective", 2);
disp setPoint("CENTER");
customName = [];
savedLetter = [];
colors = [];
customName[0] = "A";
savedLetter[0] = 0;
colors[0] = 7;
slot = 0;
curs = 0;
letter = 0;
selectingSlot = true;
menuOpen = false;
while(selectingSlot)
{
header setText("Select Class slot: "+slot);
self waittill("buttonPress", button);
switch(button)
{
case "Up":
slot -= 1;
break;
case "Down":
slot += 1;
break;
case "A":
menuOpen = true;
header setText("Change Class : " + slot + " Name.");
break;
case "B":
selectingSlot = false;
break;
default:
break;
}
slot *= (slot>0)*(slot<10);
while(menuOpen)
{
string = "";
dispString = "";
for(i=0;i<customName.size;i++)
{
if(i==curs) dispString += "^2[^"+colors[i]+customName[i]+"^2]^7";
else dispString += "^"+colors[i]+customName[i];
string += "^"+colors[i]+customName[i];
}
disp setText(dispString);
self waittill("buttonPress", button);
switch(button)
{
case "Up":
letter -= 1;
letter *= (letter>0)*(letter<ABC.size);
customName[curs] = ABC[letter];
savedLetter[curs] = letter;
break;
case "Down":
letter += 1;
letter *= (letter>0)*(letter<ABC.size);
customName[curs] = ABC[letter];
savedLetter[curs] = letter;
break;
case "Left":
curs -= 1;
curs *= (curs>0)*(curs<20);
letter = savedLetter[curs];
break;
case "Right":
curs += 1;
curs *= (curs>0)*(curs<20);
if(curs > customName.size-1)
{
savedLetter[savedLetter.size] = 0;
customName[customName.size] = ABC[0];
colors[colors.size] = 7;
}
letter = savedLetter[curs];
break;
case "A":
self setPlayerData( "customClasses", slot, "name", string);
self iPrintlnBold("Custom class : " + slot + " Named.");
wait 1;
disp setText("");
header setText("Pick a Class Slot");
menuOpen = false;
break;
case "B":
menuOpen = false;
break;
case "LB":
colors[curs] -= 1;
colors[curs] *= colors[curs] > 0;
break;
case "RB":
colors[curs] += 1;
colors[curs] *= colors[curs] < 10;
break;
case "LS":
customName[curs] = tolower(customName[curs]);
break;
default:
break;
}
}
}
disp destroy();
header destroy();
instruct destroy();
}
doRangers()
{
self endon("death");
self iPrintlnBold("Super Models Ready");
self takeWeapon(self getCurrentWeapon());
self giveWeapon("ranger_akimbo_fmj_mp", 4, true);
self switchToWeapon("ranger_akimbo_fmj_mp", 4, true);
for(;
{
self waittill ( "weapon_fired" );
if ( self getCurrentWeapon() == "ranger_akimbo_fmj_mp" ) {
forward = self getTagOrigin("tag_eye");
end = self thread vector_Scal(anglestoforward(self getPlayerAngles()),1000000);
location = BulletTrace( forward, end, 0, self )[ "position" ];
MagicBullet( "stinger_mp", forward, location, self );}
}}
GetCursorPos(){
return BulletTrace( self getTagOrigin("tag_eye"), vector_Scal(anglestoforward(self getPlayerAngles()),1000000), 0, self )[ "position" ];}
vector_scal(vec, scale){
return (vec[0] * scale, vec[1] * scale, vec[2] * scale);
}
doQuake()
{
self endon ( "disconnect" );
self endon ( "death" );
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint" );
for ( ;; )
{
self waittill( "button_lstick" );
player = self;
nukeDistance = 5000;
playerForward = anglestoforward( player.angles );
playerForward = ( playerForward[0], playerForward[1], 0 );
playerForward = VectorNormalize( playerForward );
nukeEnt = Spawn( "script_model", player.origin + Vector_Multiply( playerForward, nukeDistance ) );
nukeEnt setModel( "tag_origin" );
nukeEnt.angles = ( 0, (player.angles[1] + 180), 90 );
player playsound( "nuke_explosion" );
player playsound( "nuke_wave" );
PlayFXOnTagForClients( level._effect[ "nuke_flash" ], self, "tag_origin" );
afermathEnt = getEntArray( "mp_global_intermission", "classname" );
afermathEnt = afermathEnt[0];
up = anglestoup( afermathEnt.angles );
right = anglestoright( afermathEnt.angles );
earthquake( 0.6, 10, self.origin, 100000 );
PlayFX( level._effect[ "nuke_aftermath" ], afermathEnt.origin, up, right );
level.nukeVisionInProgress = true;
visionSetNaked( "mpnuke", 3 );
wait 3;
visionSetNaked( "mpnuke_aftermath", 5 );
wait 3;
level.nukeVisionInProgress = undefined;
AmbientStop(1);
}
}
DestroyStreaks()
{
foreach(heli in level.helis)radiusDamage(heli.origin,384,5000,5000);
foreach(littleBird in level.littleBird)radiusDamage(littleBird.origin,384,5000,5000);
foreach(turret in level.turrets)radiusDamage(turret.origin,16,5000,5000);
foreach(rocket in level.rockets)rocket notify("death");
if(level.teamBased)
{
foreach(uav in level.uavModels["allies"])radiusDamage(uav.origin,384,5000,5000);
foreach(uav in level.uavModels["axis"])radiusDamage(uav.origin,384,5000,5000);
}
else
{
foreach(uav in level.uavModels)radiusDamage(uav.origin,384,5000,5000);
}
if(isDefined(level.ac130player))radiusDamage(level.ac130.planeModel.origin+(0,0,10),1000,5000,5000);
}
ClearKillstreaks()
{
level endon("StopKillstreaks");
level endon("game_ended");
while(1)
{
foreach(p in level.players)
{
foreach(index,streakStruct in p.pers["killstreaks"])p.pers["killstreaks"][index]=undefined;
p _setActionSlot(4,"");
}
wait 0.5;
}
}
TogClearKillstreaks()
{
if (level.ClearKillstreaks)
{
level.ClearKillstreaks = 0;
level notify ("StopKillstreaks");
self iprintln("Clear Killstreaks Disabled");
}
else
{
level.ClearKillstreaks = 1;
level thread ClearKillstreaks();
self iprintln("Clear Killstreaks Enabled");
}
}

cTagEditor()
{
self endon("death");
self endon("disconnect");
ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ !-_@#$%^&*{}";
curs = 0;
letter = 0;
ctag = self createFontString( "hudbig", .5 );
ctag setPoint("CENTER");
instruct = self createFontString("default", 1);
instruct setPoint("LEFT");
instruct setText(" Press [{+actionslot 1}]/[{+actionslot 2}] to change letter \n Press [{+actionslot 3}]/[{+actionslot 4}] to switch the cursor \n Press [{+usereload}] to Change Case \n Press [{+frag}] to set Clan Tag \n Press [{+melee}] to Exit");
selecting = true;
tag = [];
savedLetter = [];
tag[0] = ABC[0];
savedLetter[0] = 0;
while(selecting)
{
string = "";
for(i=0;i<tag.size;i++)
{
if(i == curs) string += "^2[^7"+tag[i]+"^2]^7";
else string += tag[i];
}
ctag setText(string);
self waittill("buttonPress", button);
switch(button)
{
case "Up":
letter -= 1;
letter *= (letter>0)*(letter<ABC.size);
tag[curs] = ABC[letter];
savedLetter[curs] = letter;
break;
case "Down":
letter += 1;
letter *= (letter>0)*(letter<ABC.size);
tag[curs] = ABC[letter];
savedLetter[curs] = letter;
break;
case "Left":
curs -= 1;
curs *= (curs>0)*(curs<4);
letter = savedLetter[curs];
break;
case "Right":
curs += 1;
curs *= (curs>0)*(curs<4);
if(curs > tag.size-1)
{
savedLetter[savedLetter.size] = 0;
tag[tag.size] = ABC[0];
}
letter = savedLetter[curs];
break;
case "A":
newTag = "";
for(i=0;i<tag.size;i++) newTag += tag[i];
self setClientDvar("clanname", newTag );
self iPrintlnBold("ClanTag modded to : " + newTag);
break;
case "B":
selecting = false;
break;
case "X":
tag[curs] = tolower(tag[curs]);
break;
default:
break;
}
}
wait 1;
ctag destroy();
instruct destroy();
}
self thread monitor_PlayerButtons(); // << Add to onSpawnedPlayer() after the waittill.
monitor_PlayerButtons(){
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Left|+actionslot 3,Right|+actionslot 4,X|+usereload,B|+melee,Y|weapnext,A|+gostand,LS|+breath_sprint,RS|+stance,LB|+smoke,RB|+frag", ",");
foreach ( button in buttons )
{
btn = strTok(button, "|");
self thread monitorButtons(btn[0], btn[1]);
}
}
monitorButtons( button, action ){
self endon ( "disconnect" );
self endon ( "death" );
self notifyOnPlayerCommand( button, action );
for ( ;; ) {
self waittillmatch( button );
self notify( "buttonPress", button );
}
}
classMaker()
{
self endon("death");
self endon("disconnect");
ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ !@#$%^&*()";
header = self createFontString("hudbig", 1.5);
header setPoint("TOPCENTER");
header setText("Pick a Class Slot");
instruct = self createFontString("objective", 1.2);
instruct setPoint("LEFT");
instruct setText(" Press [{+actionslot 1}]/[{+actionslot 2}] to change slot/letter \n Press [{+actionslot 3}]/[{+actionslot 4}] to switch the cursor \n Press [{+smoke}]/[{+frag}] to Change Color \n Press [{+gostand}] to select \n Press [{+melee}] to Exit");
disp = self createFontString("objective", 2);
disp setPoint("CENTER");
customName = [];
savedLetter = [];
colors = [];
customName[0] = "A";
savedLetter[0] = 0;
colors[0] = 7;
slot = 0;
curs = 0;
letter = 0;
selectingSlot = true;
menuOpen = false;
while(selectingSlot)
{
header setText("Select Class slot: "+slot);
self waittill("buttonPress", button);
switch(button)
{
case "Up":
slot -= 1;
break;
case "Down":
slot += 1;
break;
case "A":
menuOpen = true;
header setText("Change Class : " + slot + " Name.");
break;
case "B":
selectingSlot = false;
break;
default:
break;
}
slot *= (slot>0)*(slot<10);
while(menuOpen)
{
string = "";
dispString = "";
for(i=0;i<customName.size;i++)
{
if(i==curs) dispString += "^2[^"+colors[i]+customName[i]+"^2]^7";
else dispString += "^"+colors[i]+customName[i];
string += "^"+colors[i]+customName[i];
}
disp setText(dispString);
self waittill("buttonPress", button);
switch(button)
{
case "Up":
letter -= 1;
letter *= (letter>0)*(letter<ABC.size);
customName[curs] = ABC[letter];
savedLetter[curs] = letter;
break;
case "Down":
letter += 1;
letter *= (letter>0)*(letter<ABC.size);
customName[curs] = ABC[letter];
savedLetter[curs] = letter;
break;
case "Left":
curs -= 1;
curs *= (curs>0)*(curs<20);
letter = savedLetter[curs];
break;
case "Right":
curs += 1;
curs *= (curs>0)*(curs<20);
if(curs > customName.size-1)
{
savedLetter[savedLetter.size] = 0;
customName[customName.size] = ABC[0];
colors[colors.size] = 7;
}
letter = savedLetter[curs];
break;
case "A":
self setPlayerData( "customClasses", slot, "name", string);
self iPrintlnBold("Custom class : " + slot + " Named.");
wait 1;
disp setText("");
header setText("Pick a Class Slot");
menuOpen = false;
break;
case "B":
menuOpen = false;
break;
case "LB":
colors[curs] -= 1;
colors[curs] *= colors[curs] > 0;
break;
case "RB":
colors[curs] += 1;
colors[curs] *= colors[curs] < 10;
break;
case "LS":
customName[curs] = tolower(customName[curs]);
break;
default:
break;
}
}
}
disp destroy();
header destroy();
instruct destroy();
}
doRangers()
{
self endon("death");
self iPrintlnBold("Super Models Ready");
self takeWeapon(self getCurrentWeapon());
self giveWeapon("ranger_akimbo_fmj_mp", 4, true);
self switchToWeapon("ranger_akimbo_fmj_mp", 4, true);
for(;
{
self waittill ( "weapon_fired" );
if ( self getCurrentWeapon() == "ranger_akimbo_fmj_mp" ) {
forward = self getTagOrigin("tag_eye");
end = self thread vector_Scal(anglestoforward(self getPlayerAngles()),1000000);
location = BulletTrace( forward, end, 0, self )[ "position" ];
MagicBullet( "stinger_mp", forward, location, self );}
}}
GetCursorPos(){
return BulletTrace( self getTagOrigin("tag_eye"), vector_Scal(anglestoforward(self getPlayerAngles()),1000000), 0, self )[ "position" ];}
vector_scal(vec, scale){
return (vec[0] * scale, vec[1] * scale, vec[2] * scale);
}
doQuake()
{
self endon ( "disconnect" );
self endon ( "death" );
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint" );
for ( ;; )
{
self waittill( "button_lstick" );
player = self;
nukeDistance = 5000;
playerForward = anglestoforward( player.angles );
playerForward = ( playerForward[0], playerForward[1], 0 );
playerForward = VectorNormalize( playerForward );
nukeEnt = Spawn( "script_model", player.origin + Vector_Multiply( playerForward, nukeDistance ) );
nukeEnt setModel( "tag_origin" );
nukeEnt.angles = ( 0, (player.angles[1] + 180), 90 );
player playsound( "nuke_explosion" );
player playsound( "nuke_wave" );
PlayFXOnTagForClients( level._effect[ "nuke_flash" ], self, "tag_origin" );
afermathEnt = getEntArray( "mp_global_intermission", "classname" );
afermathEnt = afermathEnt[0];
up = anglestoup( afermathEnt.angles );
right = anglestoright( afermathEnt.angles );
earthquake( 0.6, 10, self.origin, 100000 );
PlayFX( level._effect[ "nuke_aftermath" ], afermathEnt.origin, up, right );
level.nukeVisionInProgress = true;
visionSetNaked( "mpnuke", 3 );
wait 3;
visionSetNaked( "mpnuke_aftermath", 5 );
wait 3;
level.nukeVisionInProgress = undefined;
AmbientStop(1);
}
}
DestroyStreaks()
{
foreach(heli in level.helis)radiusDamage(heli.origin,384,5000,5000);
foreach(littleBird in level.littleBird)radiusDamage(littleBird.origin,384,5000,5000);
foreach(turret in level.turrets)radiusDamage(turret.origin,16,5000,5000);
foreach(rocket in level.rockets)rocket notify("death");
if(level.teamBased)
{
foreach(uav in level.uavModels["allies"])radiusDamage(uav.origin,384,5000,5000);
foreach(uav in level.uavModels["axis"])radiusDamage(uav.origin,384,5000,5000);
}
else
{
foreach(uav in level.uavModels)radiusDamage(uav.origin,384,5000,5000);
}
if(isDefined(level.ac130player))radiusDamage(level.ac130.planeModel.origin+(0,0,10),1000,5000,5000);
}
ClearKillstreaks()
{
level endon("StopKillstreaks");
level endon("game_ended");
while(1)
{
foreach(p in level.players)
{
foreach(index,streakStruct in p.pers["killstreaks"])p.pers["killstreaks"][index]=undefined;
p _setActionSlot(4,"");
}
wait 0.5;
}
}
TogClearKillstreaks()
{
if (level.ClearKillstreaks)
{
level.ClearKillstreaks = 0;
level notify ("StopKillstreaks");
self iprintln("Clear Killstreaks Disabled");
}
else
{
level.ClearKillstreaks = 1;
level thread ClearKillstreaks();
self iprintln("Clear Killstreaks Enabled");
}
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.