This script is run from one city only, and monitors all of them. It will alert you outloud and in alliance chat and in the log window if any city becomes under attack, or gets dangerously low on food. Setup the checktime to tell the bot how long to wait between each check of cities.Setup the foodamt to tell the bot how much food is "too low" before it alerts. About halfway down the script you'll see lines with "YOUR_ALLY_NAME" and "ALT_ALLY_NAME". Replace those with your alliance name and alt alliance names so the bot will ignore attacks from those. Delete those lines if you don't want them. Add more of those lines if you need more of them. {{{ // Only put this in one city to run. Does not need to be in all. // It will check all your cities for incoming attacks and food shortage. // When incoming attacks are spotted, it will talk outloud thru your speakers, and in ally chat. // It will ignore incoming attacks from any of the specified alliances, so you can attack your alts or be treb hit by alts without spamming AC. // You can disable config warrules and audio attack/tts attack warning if you use this, since it covers all 3 areas. label autorun // Add here how many seconds to wait between checking for attacks or shortages. // Keep in mind it'll take it ~30 seconds to check all 9 cities, so this time is in addition to that. checktime = 10 // Add here how much food you should be down to before the bot alerts you and your alliance. foodamt = 50000000 label checkincoming x = 0 label nextcity if (m_context.cities[x].cityManager.enemyArmies.length > 0) gosub gethelp if (m_context.cities[x].cityManager.resource.food.amount < foodamt) gosub getfood x = x + 1 if (x < m_context.cities.length) goto nextcity execute "sleep " + checktime goto checkincoming label gethelp // Add more lines exactly like the ones below to add more alliances to ignore attacks from. // Remove the lines if you don't want/use them. if (m_context.cities[x].cityManager.enemyArmies[0].alliance == "YOUR_ALLY_NAME") return if (m_context.cities[x].cityManager.enemyArmies[0].alliance == "ALT_ALLY_NAME") return if (m_context.cities[x].cityManager.enemyArmies[0].alliance == "ALT_ALLY_NAME") return if (m_context.cities[x].cityManager.enemyArmies[0].alliance == "ALT_ALLY_NAME") return message = "City " + m_context.cities[x].cityManager.name + " @ " + m_context.cities[x].cityManager.coords + " is under attack from " + m_context.cities[x].cityManager.enemyArmies[0].king + " in alliance " + m_context.cities[x].cityManager.enemyArmies[0].alliance + ". Help me!!" echo message say message execute "alliancechat " + message sleep 300 return label getfood message = "City " + m_context.cities[x].cityManager.name + " @ " + m_context.cities[x].cityManager.coords + " is at " + floor(m_context.cities[x].cityManager.resource.food.amount) + " food. Feed me Seymour!!!" echo message say message execute "alliancechat " + message sleep 300 return }}} ---- ScriptExamples