$MAX_SLEEPERUNITS:12 $NeededAmount:30 #Code Fragment here was written by TheLongFellowPLAYER and optimized by GameGibu #make sure to reset/destroy & replace the main core that has this script each time you test! once Self CONST_MAXHEALTH 2000 SetUnitAttribute Self CONST_HEALTH 2000 SetUnitAttribute Self CONST_CREATEPZ FALSE SetUnitAttribute Self CONST_SNIPERTARGET TRUE SetUnitAttribute Self CONST_COUNTSFORVICTORY FALSE SetUnitAttribute Self CONST_HEALRATE 0 SetUnitAttribute EnableTowerField(10 -50000000 0 0 TRUE) #maybe you wanted this here: #SetUnitAttribute(Self CONST_MAXAMMO <-NeededAmount) 0 ->myTime endonce <-myTime add(1) ->myTime #must run every loop, but do NOT use delay(int) in conjunction with this method. if(<-myTime 20 mul(30) mod eq0) #executes every 10 seconds, for safety only ever use integers or an integer + 0.5 in that spot if(GetCreeper(CurrentCoords) <-NeededAmount gte) if (<-CreepCount lt(<-MAX_SLEEPERUNITS)) RandInt(0 5) ->Creep if(<-Creep eq(0)) "CMortar.crpl" ->randScriptName <-CreepCount add(1) ->CreepCount endif if(<-Creep eq(1)) "CCannon.crpl" ->randScriptName <-CreepCount add(1) ->CreepCount endif if(<-Creep eq(2)) "CBeam.crpl" ->randScriptName <-CreepCount add(1) ->CreepCount endif if(<-Creep eq(3)) "CSniper.crpl" ->randScriptName <-CreepCount add(1) ->CreepCount endif if(<-Creep eq(4)) "CSprayer.crpl" ->randScriptName <-CreepCount add(1) ->CreepCount endif endif CreateUnit("CRPLCore" RandCoordsInRange(CurrentCoords 15)) ->unit AddScriptToUnit(<-unit <-randScriptName) GetCreeper(CurrentCoords) <-NeededAmount sub ->newHeight SetCreeper(CurrentCoords <-newHeight) endif endif