What you want is a campaign script. There is no need for monitors, only if statements.
Campaign scripts fire as soon as descr_strat is parsed and can be used to give AI controlled factions a boost at the beginning of the game without boosting human players using that faction.
First, you must declare your campaign script in descr_strat. To do that add this to the very end of your descr_strat
Code:
script
Your_Campaign_Script.txt
Then create a text file named "Your_Campaign_Script.txt" (this file just needs to have the same name as the file name you put in descr_strat).
In the script start with these lines:
Code:
script
suspend_during_battle on
Then for each (AI) faction that you want to add units too you need to add this code:
Code:
if not I_LocalFaction 'faction internal name'
end_if
This means that whatever code you add between the "if" and "end_if" will happen only if the player isn't using that faction. If you leave out the "not" the code will run only if the player is using that faction. This way you can create two different armies in the same city or at the same general.
Now to add units use this code:
Code:
console_command create_unit City "unit name" # xp wp arm
console_command create_unit "General's Name" "unit name" # xp wp arm
The first is an example for a city, and the second for a general in the field. The first number after the unit's name is the amount of units, the second is experience, the third and fourth are weapons and armor respectively. Use the internal names of cities without quotes, and the internal names in quotes for generals. Unit names are taken from export_descr_units and should be in quotes.
So for example, we would have this for Rome:
Code:
if not I_LocalFaction romans_julii
console_command create_unit Rome "allied hastati" 4 2 1 1
console_command create_unit "Decius Mus" "roman equites" 1 3 1 1
end_if
Finally, at the end of the script, add this:
The campaign script should be used only to help balance the beginning of the campaign as the player cannot save while it is running, but a script of this sort runs almost instantly.