---------------------------------------------------------------------------------------------------------------
Mass Cloak Tutorial
---------------------------------------------------------------------------------------------------------------
This will change your cloaking pack from cloaking just self, to cloaking every player, deployable and vehicle within 30 meters of you while it's activated. It also allows for deployables or beacons to do the same. To make a deployable or beacon cloak others, add these two lines to its datablock:

cloakOthers = true;
cloakRadius = 30; //adjust for radius you want

Update: Console spam fix in CloakLoop and StartCloakLoop (1/11)
Update: Minor changes/info added to function CloakLoop. (12/7)

Step #1
// ------------------------------------------
// cloakingpack.cs
// ------------------------------------------
Add all this to the bottom of the file:

function CloakLoop()
{
   %packradius = 30; //Radius of cloaking pack mass cloak
   if (!(isObject(MissionCleanup)))
   {
      schedule(10000, 0, "StartCloakLoop");
      return;
   }
   %dep = nameToID("MissionCleanup/Deployables");
   %count = ClientGroup.getCount();
   %count2 = %dep.getCount();
   %count3 = MissionCleanup.getCount();
   for (%i=0;%i<%count;%i++)
   {
      ClientGroup.getObject(%i).shouldCloak = 0;
   }
   for (%i=0;%i<%count2;%i++)
   {
      %dep.getObject(%i).shouldCloak = 0;
   }
   for (%i=0;%i<%count3;%i++)
   {
      %obj = MissionCleanup.getObject(%i);
      if (%obj.getType() & $TypeMasks::VehicleObjectType)
         %obj.shouldCloak = 0;
   }
   for (%i=0;%i<%count;%i++)
   {
      %obj = ClientGroup.getObject(%i).player;
      if(%obj)
      {
         if ((%obj.getMountedImage($BackpackSlot) $= CloakingPackImage.getID()) && (%obj.getImageState($BackpackSlot) $= "activate"))
         {
            %obj.client.shouldCloak = 1;
            %pos = %obj.getPosition();
            for(%i2=0;%i2<%count;%i2++) //Pack cloaks players
            {
               %obj2 = ClientGroup.getObject(%i2).player;
               if ((%obj2) && (%obj2 != %obj) && (%obj2.team == %obj.team))
               {
                  %pos2 = %obj2.getPosition();
                  if (VectorDist(%pos, %pos2) < %packradius)
                     %obj2.client.shouldCloak = 1;
               }
            }
            for(%i2=0;%i2<%count2;%i2++) //Pack cloaks deployables
            {
               %obj2 = %dep.getObject(%i2);
               if ((%obj2) && (%obj2 != %obj) && (%obj2.team == %obj.team))
               {
                  %pos2 = posFromTransform(%obj2.getTransform());
                  if (VectorDist(%pos, %pos2) < %packradius)
                     %obj2.shouldCloak = 1;
               }
            }
            for (%i2=0;%i2<%count3;%i2++) //Pack cloaks vehicles
            {
               %obj2 = MissionCleanup.getObject(%i2);
               if ((%obj2.getType() & $TypeMasks::VehicleObjectType) && (%obj2.team == %obj.team))
               {
                  %pos2 = posFromTransform(%obj2.getTransform());
                  if (VectorDist(%pos, %pos2) < %packradius)
                     %obj2.shouldCloak = 1;
               }
            }
         }
      }
   }
   for (%i=0;%i<%count2;%i++)
   {
      %obj = %dep.getObject(%i);
      if (isObject(%obj))
      {
         %data = %obj.getDataBlock();
         if ((%data.cloakOthers) && (%obj.getDamageState() $= "Enabled"))
         {
            %pos = posFromTransform(%obj.getTransform());
            for(%i2=0;%i2<%count;%i2++) //Deployables cloak players
            {
               %obj2 = ClientGroup.getObject(%i2).player;
               if ((%obj2) && (%obj2 != %obj) && (%obj2.team == %obj.team))
               {
                  %pos2 = %obj2.getPosition();
                  if (VectorDist(%pos, %pos2) < %data.cloakRadius)
                     %obj2.client.shouldCloak = 1;
               }
            }
            for(%i2=0;%i2<%count2;%i2++) //Deployables cloak deployables
            {
               %obj2 = %dep.getObject(%i2);
               if ((%obj2) && (%obj2 != %obj) && (%obj2.team == %obj.team))
               {
                  %pos2 = posFromTransform(%obj2.getTransform());
                  if (VectorDist(%pos, %pos2) < %data.cloakRadius)
                     %obj2.shouldCloak = 1;
               }
            }
            for (%i2=0;%i2<%count3;%i2++) //Deployables cloak vehicles
            {
               %obj2 = MissionCleanup.getObject(%i2);
               if ((%obj2.getType() & $TypeMasks::VehicleObjectType) && (%obj2.team == %obj.team))
               {
                  %pos2 = posFromTransform(%obj2.getTransform());
                  if (VectorDist(%pos, %pos2) < %data.cloakRadius)
                     %obj2.shouldCloak = 1;
               }
            }
         }
      }
   }
   for (%i=0;%i<%count3;%i++)
   {
      %obj = MissionCleanup.getObject(%i);
      if (%obj.getType() & $TypeMasks::SensorObjectType)
      {
         %data = %obj.getDataBlock();
         if ((%data.cloakOthers) && (%obj.getDamageState() $= "Enabled"))
         {
            %pos = posFromTransform(%obj.getTransform());
            for(%i2=0;%i2<%count;%i2++) //Beacons cloak players
            {
               %obj2 = ClientGroup.getObject(%i2).player;
               if ((%obj2) && (%obj2 != %obj) && (%obj2.team == %obj.team))
               {
                  %pos2 = %obj2.getPosition();
                  if (VectorDist(%pos, %pos2) < %data.cloakRadius)
                     %obj2.client.shouldCloak = 1;
               }
            }
            for(%i2=0;%i2<%count2;%i2++) //Beacons cloak deployables
            {
               %obj2 = %dep.getObject(%i2);
               if ((%obj2) && (%obj2 != %obj) && (%obj2.team == %obj.team))
               {
                  %pos2 = posFromTransform(%obj2.getTransform());
                  if (VectorDist(%pos, %pos2) < %data.cloakRadius)
                     %obj2.shouldCloak = 1;
               }
            }
            for (%i2=0;%i2<%count3;%i2++) //Beacons cloak vehicles
            {
               %obj2 = MissionCleanup.getObject(%i2);
               if ((%obj2.getType() & $TypeMasks::VehicleObjectType) && (%obj2.team == %obj.team))
               {
                  %pos2 = posFromTransform(%obj2.getTransform());
                  if (VectorDist(%pos, %pos2) < %data.cloakRadius)
                     %obj2.shouldCloak = 1;
               }
            }
         }
      }
   }
   for (%i=0;%i<%count;%i++) //Cloaks players
   {
      %client = ClientGroup.getObject(%i);
      %obj = %client.player;
      if (%obj)
      {
         if ((%client.shouldCloak) && (!%obj.isCloaked()))
            %obj.setCloaked(true);
         else if ((!%client.shouldCloak) && (%obj.isCloaked()))
            %obj.setCloaked(false);
      }
   }
   for (%i=0;%i<%count2;%i++) //Cloaks deployables
   {
      %obj = %dep.getObject(%i);
      if (isObject(%obj))
      {
         %data = %obj.getDataBlock();
         if (%data.cloakOthers)
         {
            if (%obj.isCloaked())
               %obj.setCloaked(false);
         }
         else if ((%obj.shouldCloak) && (!%obj.isCloaked()))
            %obj.setCloaked(true);
         else if ((!%obj.shouldCloak) && (%obj.isCloaked()))
            %obj.setCloaked(false);
      }
   }
   for (%i=0;%i<%count3;%i++) //Cloaks vehicles
   {
      %obj = MissionCleanup.getObject(%i);
      if (%obj.getType() & $TypeMasks::VehicleObjectType)
      {
         if ((%obj.shouldCloak) && (!%obj.isCloaked()))
            %obj.setCloaked(true);
         else if ((!%obj.shouldCloak) && (%obj.isCloaked()))
            %obj.setCloaked(false);
      }
   }

   schedule(1000, 0, "cloakLoop");
}

function StartCloakLoop()
{
   $CloakLoop = 1;
   if (!(isObject(MissionCleanup)))
   {
      schedule(10000, 0, "StartCloakLoop");
      return;
   }
   %depGroup = nameToID("MissionCleanup/Deployables");
   if(%depGroup <= 0) {
      %depGroup = new SimGroup("Deployables");
      MissionCleanup.add(%depGroup);
   }
   CloakLoop();
}


Step #2
// ------------------------------------------
// Server.cs
// ------------------------------------------
In function loadMissionStage2, under this line:

   new SimGroup (MissionCleanup);

add this:

   if ($CloakLoop != 1)
      StartCloakLoop();

Function CloakLoop is a continous loop that is run every second, but when tested with 17 players and a couple dozen deployables, it still ran at <1ms. So, it shouldn't cause any lag.