Hey,
First of all I have to say your script has a syntax error. Have you ever taken a look of the log after you start a new campaign? The compiler would say your script has errors in line xxx, so would turn to use the vanilla campaign_script. That's why everything you've done didn't work.
Besides, there are no "console_command add_money russia, 20000", you should try either "add_money russia 20000" or "console_command add_money 20000". The command "add_money russia 20000" will add money to the faction russia, whether it's controlled by AI doesn't matter; while the command "console_command add_money 20000" add money to the local factions, i.e. player's faction.(It should be OK)
Your script (inside the monitor):
Code:
if I_CompareCounter month == 1 ;January
if not I_IsFactionAIControlled russia
console_command add_money russia, 20000
end_if
and I_CompareCounter winter_severity == 1 ; normal winter
console_command season winter
historic_event month_1
end_if
should be changed to:
Code:
if I_CompareCounter month == 1 ;January
if not I_IsFactionAIControlled russia
add_money russia 20000
end_if
if I_CompareCounter winter_severity == 1 ; normal winter
console_command season winter
end_if
historic_event month_1
end_if
About your question, a monitor is only a trigger. In your script, when the players turn start, the game will run the commands inside it. The conditions of the monitor doesn't effect how the commands work, but only when to be triggered.
However, the condition you wrote to give russia money does't work for AI russia because the if condition "not I_IsFactionAIControlled russia" means "russia is not controlled by AI", i.e. "the player is controlling russia". In this case if the player plays russia he'll get money; if he does not, the AI russia won't get it since the condition is not satisfied.
For your purpose, to give AI money every year, I'd like to use the following script:
Code:
monitor_event PreFactionTurnStart FactionIsLocal
if I_CompareCounter month == 1 ;January
if I_IsFactionAIControlled russia
add_money russia 20000
end_if
(...duplicate the three lines above for all factions...)
if I_CompareCounter winter_severity == 1 ; normal winter
console_command season winter
end_if
historic_event month_1
end_if
end_monitor
And one reminder here, the change in campaign_script is not savegame-compatible. You have to restart a campaign every time you change the campaign script to see it works.
Cheers