diff --git a/scripts/HTN/Trees/Red/RedForceCoordinator.xml b/scripts/HTN/Trees/Red/RedForceCoordinator.xml
index a5fb135c45a2350b6b80f8da31ea5bc817de5ed0..39ed40db13ede538f555d781ad53fd38c7298ea9 100644
--- a/scripts/HTN/Trees/Red/RedForceCoordinator.xml
+++ b/scripts/HTN/Trees/Red/RedForceCoordinator.xml
@@ -18,6 +18,8 @@ borg.redConvoyDest=dict()
 borg.redFormsByUnit=dict()
 borg.redUnitStatus=dict()
 
+borg.redWaitingUnits=[]
+
 # for logging
 borg.redUnitActivity=dict()
 borg.redUnitActivityTime=dict()
@@ -266,89 +268,89 @@ while len(dismounts)>0:
 _gt_activeNode.putVar("convoyIndex", 0)
 
 # activate one
-if borg.params_activateConvoyOne:
-    al = ArrayList()
-    al.add("circle")
-    al.add("FIRE_CONTROL_RADAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-
-    UtilityFuncsExp.scheduleEvent(
-       dm,
-       info.getMyAssignedName(),
-       "GoalTracker_CreateConvoy",
-       0.001,
-       al)
+al = ArrayList()
+al.add(borg.params_activateConvoyOne)
+al.add("circle")
+al.add("FIRE_CONTROL_RADAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+
+UtilityFuncsExp.scheduleEvent(
+    dm,
+    info.getMyAssignedName(),
+    "GoalTracker_CreateConvoy",
+    0.001,
+    al)
 
 # activate two
-if borg.params_activateConvoyTwo:
-    al = ArrayList()
-    al.add("bigellipse")
-    al.add("FIRE_CONTROL_RADAR")
-    al.add("FIRE_CONTROL_RADAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-
-    UtilityFuncsExp.scheduleEvent(
-       dm,
-       info.getMyAssignedName(),
-       "GoalTracker_CreateConvoy",
-       5,
-       al)
+al = ArrayList()
+al.add(borg.params_activateConvoyTwo)
+al.add("bigellipse")
+al.add("FIRE_CONTROL_RADAR")
+al.add("FIRE_CONTROL_RADAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+
+UtilityFuncsExp.scheduleEvent(
+    dm,
+    info.getMyAssignedName(),
+    "GoalTracker_CreateConvoy",
+    5,
+    al)
 
 # activate three
-if borg.params_activateConvoyThree:
-    al = ArrayList()
-    al.add("bigbox")
-    al.add("FIRE_CONTROL_RADAR")
-    al.add("TARGET_ACQ_RADAR")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("SPT_VEH")
-    al.add("TELAR")
-    al.add("TELAR")
-    al.add("TELAR")
-
-    UtilityFuncsExp.scheduleEvent(
-       dm,
-       info.getMyAssignedName(),
-       "GoalTracker_CreateConvoy",
-       10,
-       al)
+al = ArrayList()
+al.add(borg.params_activateConvoyThree)
+al.add("bigbox")
+al.add("FIRE_CONTROL_RADAR")
+al.add("TARGET_ACQ_RADAR")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("SPT_VEH")
+al.add("TELAR")
+al.add("TELAR")
+al.add("TELAR")
+
+UtilityFuncsExp.scheduleEvent(
+    dm,
+    info.getMyAssignedName(),
+    "GoalTracker_CreateConvoy",
+    10,
+    al)
 
 </Code>
       <Import />
@@ -395,6 +397,11 @@ convoyIndex = _gt_activeNode.getVar("convoyIndex")
 # a list of the profiles the are part of this convoy
 profiles = state.getLastTriggerParams()[0]
 
+# grab the activation flag. we still want to create the unit
+# but we don't send them out if the activate flag is off
+activateFlag = profiles.get(0)
+profiles.remove(0)
+
 # formation name to use. formation is the first string in the
 # profile list
 formName = profiles.get(0)
@@ -427,8 +434,10 @@ tu = PythonUnit._py_createTacticalUnitMtry("CONVOY_"+str(convoyIndex), memberLis
 _gt_activeNode.putVar("convoyIndex", convoyIndex+1)
 
 # go to making the convoy move (still in this tree)
-SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_MoveConvoy", [tu.getName(), formName], 1)
-
+if activateFlag:
+    SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_MoveConvoy", [tu.getName(), formName, "False"], 1)
+else:
+    borg.redWaitingUnits.append([tu.getName(), formName])
 
 </Code>
           <Import />
@@ -493,6 +502,13 @@ elif numDestChance &gt; 0.5:
 if borg.params_overrideNumDests &gt; 0:
     numDestinations = borg.params_overrideNumDests
 
+# check for back unit override
+backupUnit = state.getLastTriggerParams()[0].get(2)
+if backupUnit == "True":
+    # this only happens on attack runs so we trick the system into just creating an attack
+    # position
+    numDestinations = 0
+
 convoyDests = []
 for n in range(numDestinations):
     destName = borg.redDestinations[0]
@@ -534,11 +550,20 @@ if state.getLastTrigger() == "doGoalTracker_StartAttackMove":
         <Import />
         <HTNNode AllowMsg="true" Name="startAttackMove" Type="INTERRUPT">
           <Parent>isMoveConvoy</Parent>
-          <Code IsFile="false">heardBefore = _gt_activeNode.getVar("heardAttackMsg")
+          <Code IsFile="false">import cxxi.model.knowledge.group.holders.NewUnitHolder as NewUnitHolder
+
+heardBefore = _gt_activeNode.getVar("heardAttackMsg")
 
 if heardBefore == 0:
-    printMessage("START ATTACK METHODOLOGY", True)
+    printMessage("START ATTACK METHODOLOGY WAITING UNITS:"+str(borg.redWaitingUnits), True)
     _gt_activeNode.putVar("heardAttackMsg", 1)
+
+    for unitInfo in borg.redWaitingUnits:
+        unitName = unitInfo[0]
+        formName = unitInfo[1]
+
+        SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_MoveConvoy", [unitName, formName, "True"], 1)
+        
 </Code>
           <Import />
         </HTNNode>