self add_option("Building", "Toggle Forge", ::ForgeON);
ForgeON()
{
if(self.forgeOn==false)
{
self thread ForgeMode();
self iPrintln("^7Forge Mode ^2ON ^1- ^7Hold [{+actionslot 3}] to Move Objects");
self.forgeOn=true;
self MenuClosing();
}
else
{
self notify("end_Forge");
self iPrintln("^7Forge Mode ^1OFF");
self.forgeOn=false;
}
}
SpawnModel(pos, ang, model)
{
CurrentCrate = spawn("script_model", pos);
CurrentCrate setmodel(model);
CurrentCrate.angles = angs;
level.Entities[level.amountOfEntities] = CurrentCrate;
level.amountOfEntities++;
}
ForgeMode()
{
self endon("disconnect");
self endon("end_Forge");
if(!isDefined(self.Forge)) self.Forge = false;
self.Forge = !self.Forge;
self iPrintln("Forge Mode - " + boolText(self.Forge));
if(!self.Forge) self notify("end_Forge");
else self thread MoveCrate();
while(self.Forge)
{
if(self actionslotonebuttonpressed())
{ i = 0;
self NormalisedTrace("entity") RotateTo((0,0,90 + i), 0.2);
i+= 30;
}
if(self actionslotthreebuttonpressed())
{
self SpawnCrate();
self iprintln("Spawned Crate");
}
if(self actionslottwobuttonpressed())
{
if(isdefined(self.CurrentCrate))
{
self.CurrentCrate = undefined;
self iprintln("Drop Crate");
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
location = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
mes("^1Location: " + location + "Angle: " + self.angles);
if(level.deletetext)
self deletetextspawn();
}
else
{
self.CurrentCrate = self NormalisedTrace("entity");
self iprintln("Pickup Crate");
}
}
if(self actionslotfourbuttonpressed())
{
if(isdefined(self.CurrentCrate))
{
self.CurrentCrate delete();
self.CurrentCrate = undefined;
}
else
{
self NormalisedTrace("entity") delete();
}
self iprintln("Deleted Crate");
}
wait 0.05;
}
}
boolText(var)
{
if(var)
return "^2ON";
else
return "^1OFF";
}
NormalisedTrace(type)
{
struct = self getS(9999);
return bullettrace(struct.start, struct.end, false, undefined)[type];
}
getS(scale)
{
forward = anglestoforward(self getplayerangles());
struct = spawnstruct();
struct.start = self geteye();
struct.end = struct.start + vectorScale(forward, scale);
return struct;
}
MoveCrate()
{
self endon("disconnect");
self endon("ForgeRekt");
for(;
{
if(isdefined(self.CurrentCrate))
{
self.CurrentCrate.origin = self getS(100).end;
self.CurrentCrate.angles = (0, self.angles[1], self.angles[2]);
}
wait 0.05;
}
}
SpawnCrate()
{
self.CurrentCrate = spawn("script_model", self NormalisedTrace("position"));
self.CurrentCrate setmodel("t6_wpn_supply_drop_ally");
level.Entities[level.amountOfEntities] = self.CurrentCrate;
level.amountOfEntities++;
}
self add_option("Building", "Toggle Forge", ::ForgeON);
ForgeON()
{
if(self.forgeOn==false)
{
self thread ForgeMode();
self iPrintln("^7Forge Mode ^2ON ^1- ^7Hold [{+actionslot 3}] to Move Objects");
self.forgeOn=true;
self MenuClosing();
}
else
{
self notify("end_Forge");
self iPrintln("^7Forge Mode ^1OFF");
self.forgeOn=false;
}
}
SpawnModel(pos, ang, model)
{
CurrentCrate = spawn("script_model", pos);
CurrentCrate setmodel(model);
CurrentCrate.angles = angs;
level.Entities[level.amountOfEntities] = CurrentCrate;
level.amountOfEntities++;
}
ForgeMode()
{
self endon("disconnect");
self endon("end_Forge");
if(!isDefined(self.Forge)) self.Forge = false;
self.Forge = !self.Forge;
self iPrintln("Forge Mode - " + boolText(self.Forge));
if(!self.Forge) self notify("end_Forge");
else self thread MoveCrate();
while(self.Forge)
{
if(self actionslotonebuttonpressed())
{ i = 0;
self NormalisedTrace("entity") RotateTo((0,0,90 + i), 0.2);
i+= 30;
}
if(self actionslotthreebuttonpressed())
{
self SpawnCrate();
self iprintln("Spawned Crate");
}
if(self actionslottwobuttonpressed())
{
if(isdefined(self.CurrentCrate))
{
self.CurrentCrate = undefined;
self iprintln("Drop Crate");
vec = anglestoforward(self getPlayerAngles());
end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
location = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self )[ "position" ];
mes("^1Location: " + location + "Angle: " + self.angles);
if(level.deletetext)
self deletetextspawn();
}
else
{
self.CurrentCrate = self NormalisedTrace("entity");
self iprintln("Pickup Crate");
}
}
if(self actionslotfourbuttonpressed())
{
if(isdefined(self.CurrentCrate))
{
self.CurrentCrate delete();
self.CurrentCrate = undefined;
}
else
{
self NormalisedTrace("entity") delete();
}
self iprintln("Deleted Crate");
}
wait 0.05;
}
}
boolText(var)
{
if(var)
return "^2ON";
else
return "^1OFF";
}
NormalisedTrace(type)
{
struct = self getS(9999);
return bullettrace(struct.start, struct.end, false, undefined)[type];
}
getS(scale)
{
forward = anglestoforward(self getplayerangles());
struct = spawnstruct();
struct.start = self geteye();
struct.end = struct.start + vectorScale(forward, scale);
return struct;
}
MoveCrate()
{
self endon("disconnect");
self endon("ForgeRekt");
for(;
{
if(isdefined(self.CurrentCrate))
{
self.CurrentCrate.origin = self getS(100).end;
self.CurrentCrate.angles = (0, self.angles[1], self.angles[2]);
}
wait 0.05;
}
}
SpawnCrate()
{
self.CurrentCrate = spawn("script_model", self NormalisedTrace("position"));
self.CurrentCrate setmodel("t6_wpn_supply_drop_ally");
level.Entities[level.amountOfEntities] = self.CurrentCrate;
level.amountOfEntities++;
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.