Thanks Kodiak. I altered the script (below x 2) to eliminate if/break issues. Still doesn't work though

It's as though the GamePlay.gpAirGroups(army) call is not returning any valid aircraft?
Code:
private void sayMessageTo(int army, string msg)
{ // send a speech message to all players in specified army (1=red; 2=blue)
foreach (AiAircraft a in GamePlay.gpAirGroups(army))
{
a.SayToGroup(a.AirGroup(), "Nice_shot"); // for testing
}
}
Code:
private void sayMessageTo(int army, string msg)
{ // send a speech message to all players in specified army (1=red; 2=blue)
sendScreenMessageTo(1, "saymessage", null); // testing
foreach (AiAircraft a in GamePlay.gpAirGroups(1))
{
a.SayToGroup(a.AirGroup(), "Nice_shot");
}
foreach (AiAircraft a in GamePlay.gpAirGroups(2))
{
a.SayToGroup(a.AirGroup(), "Nice_shot");
}
}