Index: src/scripttabs.c
===================================================================
--- src/scripttabs.c	(revision 9678)
+++ src/scripttabs.c	(working copy)
@@ -1492,6 +1492,10 @@
 		3, { (INTERP_TYPE)ST_DROID, VAL_INT, VAL_INT },
 		false, 0, NULL, 0, 0, NULL, NULL },
 
+	{ "scavengersActive", scrScavengersActive, VAL_BOOL,
+		0, { VAL_VOID },
+		false, 0, NULL, 0, 0, NULL, NULL },
+
 	/* END new functions */
 
     /* This final entry marks the end of the function list */
Index: src/scriptfuncs.c
===================================================================
--- src/scriptfuncs.c	(revision 9678)
+++ src/scriptfuncs.c	(working copy)
@@ -114,6 +114,17 @@
 /******************************************************************************************/
 /*                 Check for objects in areas                                             */
 
+BOOL scrScavengersActive()
+{
+	scrFunctionResult.v.bval = game.scavengers;
+	if (!stackPushResult(VAL_BOOL, &scrFunctionResult))
+	{
+		return false;
+	}
+	return true;
+}
+
+
 // check for a base object being in range of a point
 BOOL objectInRange(BASE_OBJECT *psList, SDWORD x, SDWORD y, SDWORD range)
 {
Index: src/scriptfuncs.h
===================================================================
--- src/scriptfuncs.h	(revision 9678)
+++ src/scriptfuncs.h	(working copy)
@@ -684,4 +684,6 @@
 extern BOOL addBeaconBlip(SDWORD locX, SDWORD locY, SDWORD forPlayer, SDWORD sender, char * textMsg);
 extern VIEWDATA *CreateBeaconViewData(SDWORD sender, UDWORD LocX, UDWORD LocY);
 
+extern BOOL scrScavengersActive(void);
+
 #endif // __INCLUDED_SRC_SCRIPTFUNCS_H__
Index: data/base/multiplay/script/scavfact.slo
===================================================================
--- data/base/multiplay/script/scavfact.slo	(revision 9678)
+++ data/base/multiplay/script/scavfact.slo	(working copy)
@@ -13,19 +13,12 @@
 
 
 // scavenger values
-public		int			enemy1;
-public		int			maxDroids;
+public		int		enemy1;
+public		int		maxDroids;
 
-private		int			targetX,targetY;
-
 public		STRUCTURESTAT	factory;
 private		STRUCTURE	fac1;
 
-private		int			Fact1State;
-private		bool		Fact1Destroyed;
-
-private		int			count;
-
 // Build Templates 
 public		TEMPLATE	trike;
 public		TEMPLATE	buggy;
@@ -33,117 +26,88 @@
 public		TEMPLATE	jeep;
 
 // groups
-private		GROUP		defendGroup,attackGroup,wanderGroup;
-private		DROID		newDroid,droid;
+private		GROUP		attackGroup;
+private		DROID		newDroid, droid;
 
 // attacking 
 private		STRUCTURE	structure;
 private		BASEOBJ		attacker;
-private		INT			lastAttack;
+private		INT		lastAttack;
 
-// Startup
-event startup(init)
-{
-	lastAttack = 0;
+#region triggers
 
-	groupAddArea(attackGroup, enemy1, 0, 0, (mapWidth*128), (mapHeight*128));  
+trigger chainloadTr(wait, 15);
 
-	targetX = (mapWidth/2)*128;		// init target.
-	targetY = (mapHeight/2)*128;
+event structureAttacked;
+event startup;
+event droidbuilt;
+event startLevel;
 
-//	if(fac1 != NULLOBJECT)
-//		setAssemblyPoint (fac1, fac1Ass1X, fac1Ass1Y);			//set assembly points (can't do later in case the factories are dead!!!
+#endregion triggers
 
+event startLevel(CALL_START_NEXT_LEVEL)
+{
+	fac1 = getStructure(factory, enemy1);
+	if (fac1 != NULLOBJECT)
+	{
+		buildDroid(trike, fac1, enemy1, 1);
+	}
 }
 
+// deal with a droid being built by us
+event droidbuilt(CALL_NEWDROID, enemy1, ref newDroid, ref fac1)
+{
+	local int Fact1State;
 
+	groupAddDroid(attackGroup, newDroid);
 
-// deal with a droid being built by enemy1
-event droidbuilt(CALL_NEWDROID, enemy1, ref newDroid,ref structure)
-{
-	if(myResponsibility(enemy1))
+	// Build another
+	if (fac1 != NULLOBJECT)
 	{
-		// add droid to either the attack or defend group.
-		count = random(5);
-		if( count == 0)						
+		if (structureIdle(fac1) and (numDroidsInArea(enemy1, 0, 0, (mapWidth * 128), (mapHeight * 128)) < maxDroids))
 		{
-			groupAddDroid(defendGroup, newDroid);
-		}
-		
-		else if(count == 1)
-		{
-			groupAddDroid(wanderGroup, newDroid);
-		}
-		else
-		{	// 2 or 3 or 4
-			groupAddDroid(attackGroup, newDroid);
-		}
+			Fact1State = random(6);
 
-		// move the wanderGroup to the muster point.
-		if (wanderGroup.members >= 4)
-		{
-	
-			// need to pick a target x and y.
-			// either an oil resource, an opposing struct or somewhere nearby.? HOW?
-
-			orderGroupLoc(wanderGroup, DORDER_MOVE, targetX, targetY);
-
-			initIterateGroup(wanderGroup);
-			count = wanderGroup.members;
-			while(count != 0)
+			if (Fact1State == 0)
 			{
-				droid = iterateGroup(wanderGroup);
-				droidLeaveGroup(droid);
-				count = count - 1;
+				buildDroid(trike, fac1, enemy1, 1);
 			}
+			else if (Fact1State == 1)
+			{
+				buildDroid(buggy, fac1, enemy1, 1);
+			}
+			else if (Fact1State == 2)
+			{
+				buildDroid(jeep, fac1, enemy1, 1);
+			}
+			else
+			{
+				buildDroid(bloke, fac1, enemy1, 1);
+			}
 		}
-
-
 	}
 }
 
-
-//build list
-event Fact1Evnt(myResponsibility(enemy1) , 300)
+// watch for structures being attacked. Send the cavalry as required.
+event structureAttacked(CALL_STRUCT_ATTACKED, enemy1, ref structure, ref attacker)
 {
-	fac1 = getStructure(factory, enemy1);
-	if 	(fac1 == NULLOBJECT)
+	if ((gameTime - lastAttack) > 300)
 	{
- 		setEventTrigger(Fact1Evnt, inactive);
+		lastAttack = gameTime;
+		orderGroupLoc(attackGroup, DORDER_MOVE, structure.x, structure.y);
 	}
-	else if (structureIdle(fac1)
-			 and (numDroidsInArea(enemy1, 0,0, (mapWidth*128),(mapHeight*128)) < maxDroids ) )
-	{
-		if (Fact1State == 0)
-		{
-			buildDroid (trike, fac1, enemy1, 1);
-			Fact1State = 1;
-		}
-		else if (Fact1State == 1)
-		{
-			buildDroid (buggy, fac1, enemy1, 1);
-			Fact1State = 2;
-		}
-		else if (Fact1State == 2)
-		{
-			buildDroid (jeep, fac1, enemy1, 1);
-			Fact1State = 3;
-		}
-		else
-		{
-			buildDroid (bloke, fac1, enemy1, 3);
-			Fact1State = 0;
-		}
-	}
 }
 
-// watch for structures being attacked. Send the cavalry as required.
-event structureAttacked(CALL_STRUCT_ATTACKED, enemy1,ref structure , ref attacker )
+// Startup
+event startup(CALL_GAMEINIT)
 {
-	if((gameTime - lastAttack) > 300)
+	if (!scavengersActive() or !myResponsibility(enemy1))
 	{
-		lastAttack = gameTime;
-		orderGroupLoc(attackGroup, DORDER_MOVE, structure.x, structure.y);
+		setEventTrigger(startLevel, inactive);
+		setEventTrigger(droidbuilt, inactive);
+		setEventTrigger(structureAttacked, inactive);
 	}
-}
+	lastAttack = 0;
 
+	groupAddArea(attackGroup, enemy1, 0, 0, (mapWidth * 128), (mapHeight * 128));
+}
Index: data/mp/wrf/multi/t2-skirmish2.wrf
===================================================================
--- data/mp/wrf/multi/t2-skirmish2.wrf	(revision 9678)
+++ data/mp/wrf/multi/t2-skirmish2.wrf	(working copy)
@@ -1,17 +1,19 @@
-/***********************************************************/
-/*  You may have to modify this file for it to be correct! */ 
-/*******************       wrf\multi\t2-skirmish2.wrf      *******************/
-
-
 directory	"messages"
 file		SMSG	"multiplay.txt"
+
 directory	"multiplay/skirmish"
 file		SCRIPT	"rules.slo"
 file		SCRIPT	"sktech.slo"
 file		SCRIPT	"player0.slo"
 file		SCRIPT	"player1.slo"
+
 directory	"multiplay/skirmish"
 file		SCRIPTVAL	"rules.vlo"
 file		SCRIPTVAL	"sk2tech.vlo"
 file		SCRIPTVAL	"player0.vlo"
 file		SCRIPTVAL	"player1.vlo"
+
+directory	"multiplay/script"
+file		SCRIPT		"scavfact.slo"
+file		SCRIPTVAL	"scavfact.vlo"
+
Index: data/mp/wrf/multi/t3-skirmish2.wrf
===================================================================
--- data/mp/wrf/multi/t3-skirmish2.wrf	(revision 9678)
+++ data/mp/wrf/multi/t3-skirmish2.wrf	(working copy)
@@ -1,17 +1,18 @@
-/***********************************************************/
-/*  You may have to modify this file for it to be correct! */ 
-/*******************       wrf\multi\t3-skirmish2.wrf      *******************/
-
-
 directory	"messages"
 file		SMSG	"multiplay.txt"
+
 directory	"multiplay/skirmish"
 file		SCRIPT	"rules.slo"
 file		SCRIPT	"sktech.slo"
 file		SCRIPT	"player0.slo"
 file		SCRIPT	"player1.slo"
+
 directory	"multiplay/skirmish"
 file		SCRIPTVAL	"rules.vlo"
 file		SCRIPTVAL	"sk3tech.vlo"
 file		SCRIPTVAL	"player0.vlo"
 file		SCRIPTVAL	"player1.vlo"
+
+directory	"multiplay/script"
+file		SCRIPT		"scavfact.slo"
+file		SCRIPTVAL	"scavfact.vlo"
Index: data/mp/wrf/multi/t2-skirmish4.wrf
===================================================================
--- data/mp/wrf/multi/t2-skirmish4.wrf	(revision 9678)
+++ data/mp/wrf/multi/t2-skirmish4.wrf	(working copy)
@@ -1,10 +1,6 @@
-/***********************************************************/
-/*  You may have to modify this file for it to be correct! */ 
-/*******************       wrf\multi\t2-skirmish4.wrf      *******************/
-
-
 directory	"messages"
 file		SMSG	"multiplay.txt"
+
 directory	"multiplay/skirmish"
 file		SCRIPT	"rules.slo"
 file		SCRIPT	"sktech.slo"
@@ -12,6 +8,7 @@
 file		SCRIPT	"player1.slo"
 file		SCRIPT	"player2.slo"
 file		SCRIPT	"player3.slo"
+
 directory	"multiplay/skirmish"
 file		SCRIPTVAL	"rules.vlo"
 file		SCRIPTVAL	"sk2tech.vlo"
@@ -19,3 +16,8 @@
 file		SCRIPTVAL	"player1.vlo"
 file		SCRIPTVAL	"player2.vlo"
 file		SCRIPTVAL	"player3.vlo"
+
+directory	"multiplay/script"
+file		SCRIPT		"scavfact.slo"
+file		SCRIPTVAL	"scavfact.vlo"
+
Index: data/mp/wrf/multi/t3-skirmish4.wrf
===================================================================
--- data/mp/wrf/multi/t3-skirmish4.wrf	(revision 9678)
+++ data/mp/wrf/multi/t3-skirmish4.wrf	(working copy)
@@ -1,10 +1,6 @@
-/***********************************************************/
-/*  You may have to modify this file for it to be correct! */ 
-/*******************       wrf\multi\t3-skirmish4.wrf      *******************/
-
-
 directory	"messages"
 file		SMSG	"multiplay.txt"
+
 directory	"multiplay/skirmish"
 file		SCRIPT	"rules.slo"
 file		SCRIPT	"sktech.slo"
@@ -12,6 +8,7 @@
 file		SCRIPT	"player1.slo"
 file		SCRIPT	"player2.slo"
 file		SCRIPT	"player3.slo"
+
 directory	"multiplay/skirmish"
 file		SCRIPTVAL	"rules.vlo"
 file		SCRIPTVAL	"sk3tech.vlo"
@@ -19,3 +16,8 @@
 file		SCRIPTVAL	"player1.vlo"
 file		SCRIPTVAL	"player2.vlo"
 file		SCRIPTVAL	"player3.vlo"
+
+directory	"multiplay/script"
+file		SCRIPT		"scavfact.slo"
+file		SCRIPTVAL	"scavfact.vlo"
+
Index: data/mp/wrf/multi/t2-skirmish8.wrf
===================================================================
--- data/mp/wrf/multi/t2-skirmish8.wrf	(revision 9678)
+++ data/mp/wrf/multi/t2-skirmish8.wrf	(working copy)
@@ -1,10 +1,6 @@
-/***********************************************************/
-/*  You may have to modify this file for it to be correct! */ 
-/*******************       wrf\multi\t2-skirmish8.wrf      *******************/
-
-
 directory	"messages"
 file		SMSG	"multiplay.txt"
+
 directory	"multiplay/skirmish"
 file		SCRIPT	"rules.slo"
 file		SCRIPT	"sktech.slo"
@@ -16,6 +12,7 @@
 file		SCRIPT	"player5.slo"
 file		SCRIPT	"player6.slo"
 file		SCRIPT	"player7.slo"
+
 directory	"multiplay/skirmish"
 file		SCRIPTVAL	"rules.vlo"
 file		SCRIPTVAL	"sk2tech.vlo"
Index: data/mp/wrf/multi/t3-skirmish8.wrf
===================================================================
--- data/mp/wrf/multi/t3-skirmish8.wrf	(revision 9678)
+++ data/mp/wrf/multi/t3-skirmish8.wrf	(working copy)
@@ -1,10 +1,6 @@
-/***********************************************************/
-/*  You may have to modify this file for it to be correct! */ 
-/*******************       wrf\multi\t3-skirmish8.wrf      *******************/
-
-
 directory	"messages"
 file		SMSG	"multiplay.txt"
+
 directory	"multiplay/skirmish"
 file		SCRIPT	"rules.slo"
 file		SCRIPT	"sktech.slo"
@@ -16,6 +12,7 @@
 file		SCRIPT	"player5.slo"
 file		SCRIPT	"player6.slo"
 file		SCRIPT	"player7.slo"
+
 directory	"multiplay/skirmish"
 file		SCRIPTVAL	"rules.vlo"
 file		SCRIPTVAL	"sk3tech.vlo"
Index: data/mp/wrf/multi/skirmish2.wrf
===================================================================
--- data/mp/wrf/multi/skirmish2.wrf	(revision 9678)
+++ data/mp/wrf/multi/skirmish2.wrf	(working copy)
@@ -1,15 +1,16 @@
-/***********************************************************/
-/*  You may have to modify this file for it to be correct! */ 
-/*******************       WRF\Multi\skirmish2.wrf      *******************/
-
-
 directory	"messages"
 file		SMSG	"multiplay.txt"
+
 directory	"multiplay/skirmish"
 file		SCRIPT	"rules.slo"
 file		SCRIPT	"player0.slo"
 file		SCRIPT	"player1.slo"
+
 directory	"multiplay/skirmish"
 file		SCRIPTVAL	"rules.vlo"
 file		SCRIPTVAL	"player0.vlo"
 file		SCRIPTVAL	"player1.vlo"
+
+directory	"multiplay/script"
+file		SCRIPT		"scavfact.slo"
+file		SCRIPTVAL	"scavfact.vlo"
Index: data/mp/wrf/multi/skirmish4.wrf
===================================================================
--- data/mp/wrf/multi/skirmish4.wrf	(revision 9678)
+++ data/mp/wrf/multi/skirmish4.wrf	(working copy)
@@ -1,19 +1,21 @@
-/***********************************************************/
-/*  You may have to modify this file for it to be correct! */ 
-/*******************       WRF\Multi\skirmish4.wrf      *******************/
-
-
 directory	"messages"
 file		SMSG	"multiplay.txt"
+
 directory	"multiplay/skirmish"
 file		SCRIPT	"rules.slo"
 file		SCRIPT	"player0.slo"
 file		SCRIPT	"player1.slo"
 file		SCRIPT	"player2.slo"
 file		SCRIPT	"player3.slo"
+
 directory	"multiplay/skirmish"
 file		SCRIPTVAL	"rules.vlo"
 file		SCRIPTVAL	"player0.vlo"
 file		SCRIPTVAL	"player1.vlo"
 file		SCRIPTVAL	"player2.vlo"
 file		SCRIPTVAL	"player3.vlo"
+
+directory	"multiplay/script"
+file		SCRIPT		"scavfact.slo"
+file		SCRIPTVAL	"scavfact.vlo"
+
Index: data/mp/wrf/multi/skirmish8.wrf
===================================================================
--- data/mp/wrf/multi/skirmish8.wrf	(revision 9678)
+++ data/mp/wrf/multi/skirmish8.wrf	(working copy)
@@ -1,10 +1,6 @@
-/***********************************************************/
-/*  You may have to modify this file for it to be correct! */ 
-/*******************       wrf\multi\skirmish8.wrf      *******************/
-
-
 directory	"messages"
 file		SMSG	"multiplay.txt"
+
 directory	"multiplay/skirmish"
 file		SCRIPT	"rules.slo"
 file		SCRIPT	"player0.slo"
@@ -15,6 +11,7 @@
 file		SCRIPT	"player5.slo"
 file		SCRIPT	"player6.slo"
 file		SCRIPT	"player7.slo"
+
 directory	"multiplay/skirmish"
 file		SCRIPTVAL	"rules.vlo"
 file		SCRIPTVAL	"player0.vlo"

