ForgeMode(){
if(self.Forge){
self notify("StopForge");
self.Forge=0;
self iprintln("Forge Mode Disabled");
}else{
self.Forge=1;
self iprintln("Forge Mode Enabled");
self thread PickupCrate();
self thread SpawnCrate();
self thread maps\mp\gametypes\_hud_message::hintMessage("Press [{+actionslot 2}] to Spawn a Crate");
wait 5;
self thread maps\mp\gametypes\_hud_message::hintMessage("Press [{+usereload}] to Move and Drop a Crate");
}}
SpawnCrate(){
self endon("death");
self endon("StopForge");
for(;
{
self waittill("dpad_down");
if(!self.MenuOpen){
if(self.ugp>0){
vec=anglestoforward(self getPlayerAngles());
end=(vec[0]*200,vec[1]*200,vec[2]*200);
L=BulletTrace(self gettagorigin("tag_eye"),self gettagorigin("tag_eye")+end,0,self)["position"];
c=spawn("script_model",L+(0,0,20));
c CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
c setModel("com_plasticcase_beige_big");
c PhysicsLaunchServer((0,0,0),(0,0,0));
c.angles=self.angles+(0,90,0);
c.health=250;
self thread crateManageHealth(c);
self.ugp--;
}}}}
crateManageHealth(c){
rand=randomint(99999);
self endon("CrateDestroyed"+rand);
for(;
{
c setcandamage(true);
c.team=self.team;
c.owner=self.owner;
c.pers["team"]=self.team;
if(c.health<0){
level.chopper_fx["smoke"]["trail"]=loadfx("fire/fire_smoke_trail_L");
playfx(level.chopper_fx["smoke"]["trail"],c.origin);
c delete();
self notify("CrateDestroyed"+rand);
}
wait 0.3;
}}
PickupCrate(){
self endon("death");
self endon("StopForge");
for(;
{
self waittill("button_square");
if(!self.MenuOpen){
vec=anglestoforward(self getPlayerAngles());
end=(vec[0]*100,vec[1]*100,vec[2]*100);
entity=BulletTrace(self gettagorigin("tag_eye"),self gettagorigin("tag_eye")+(vec[0]*100,vec[1]*100,vec[2]*100),0,self)["entity"];
if(isdefined(entity.model)){
self thread MoveCrate(entity);
self waittill("button_square");{
self.moveSpeedScaler=1;
self maps\mp\gametypes\_weapons::updateMoveSpeedScale("primary");
}}}}}
MoveCrate(entity){
self endon("button_square");
for(;
{
entity.angles=self.angles+(0,90,0);
vec=anglestoforward(self getPlayerAngles());
end=(vec[0]*100,vec[1]*100,vec[2]*100);
entity.origin=(self gettagorigin("tag_eye")+end);
self.moveSpeedScaler=0.5;
self maps\mp\gametypes\_weapons::updateMoveSpeedScale("primary");
wait 0.05;
}}
ForgeMode(){
if(self.Forge){
self notify("StopForge");
self.Forge=0;
self iprintln("Forge Mode Disabled");
}else{
self.Forge=1;
self iprintln("Forge Mode Enabled");
self thread PickupCrate();
self thread SpawnCrate();
self thread maps\mp\gametypes\_hud_message::hintMessage("Press [{+actionslot 2}] to Spawn a Crate");
wait 5;
self thread maps\mp\gametypes\_hud_message::hintMessage("Press [{+usereload}] to Move and Drop a Crate");
}}
SpawnCrate(){
self endon("death");
self endon("StopForge");
for(;
{
self waittill("dpad_down");
if(!self.MenuOpen){
if(self.ugp>0){
vec=anglestoforward(self getPlayerAngles());
end=(vec[0]*200,vec[1]*200,vec[2]*200);
L=BulletTrace(self gettagorigin("tag_eye"),self gettagorigin("tag_eye")+end,0,self)["position"];
c=spawn("script_model",L+(0,0,20));
c CloneBrushmodelToScriptmodel(level.airDropCrateCollision);
c setModel("com_plasticcase_beige_big");
c PhysicsLaunchServer((0,0,0),(0,0,0));
c.angles=self.angles+(0,90,0);
c.health=250;
self thread crateManageHealth(c);
self.ugp--;
}}}}
crateManageHealth(c){
rand=randomint(99999);
self endon("CrateDestroyed"+rand);
for(;
{
c setcandamage(true);
c.team=self.team;
c.owner=self.owner;
c.pers["team"]=self.team;
if(c.health<0){
level.chopper_fx["smoke"]["trail"]=loadfx("fire/fire_smoke_trail_L");
playfx(level.chopper_fx["smoke"]["trail"],c.origin);
c delete();
self notify("CrateDestroyed"+rand);
}
wait 0.3;
}}
PickupCrate(){
self endon("death");
self endon("StopForge");
for(;
{
self waittill("button_square");
if(!self.MenuOpen){
vec=anglestoforward(self getPlayerAngles());
end=(vec[0]*100,vec[1]*100,vec[2]*100);
entity=BulletTrace(self gettagorigin("tag_eye"),self gettagorigin("tag_eye")+(vec[0]*100,vec[1]*100,vec[2]*100),0,self)["entity"];
if(isdefined(entity.model)){
self thread MoveCrate(entity);
self waittill("button_square");{
self.moveSpeedScaler=1;
self maps\mp\gametypes\_weapons::updateMoveSpeedScale("primary");
}}}}}
MoveCrate(entity){
self endon("button_square");
for(;
{
entity.angles=self.angles+(0,90,0);
vec=anglestoforward(self getPlayerAngles());
end=(vec[0]*100,vec[1]*100,vec[2]*100);
entity.origin=(self gettagorigin("tag_eye")+end);
self.moveSpeedScaler=0.5;
self maps\mp\gametypes\_weapons::updateMoveSpeedScale("primary");
wait 0.05;
}}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.