Some things I noticed, you have the line terminate_monitor inside your end_if on the second monitor. You don't need an if statement if you are only doing one check within that event, so just use:
Code:
monitor_event FactionTurnStart FactionType byzantium
and I_NumberOfSettlements byzantium < 10
and I_TurnNumber >= 3
historic_event byzantium_conversion true factions { byzantium, }
terminate_monitor
end_monitor
I never really liked the way CA did it for their accept/decline scrolls. I do it differently and it works for me, like so:
Code:
monitor_event FactionTurnStart FactionType byzantium
and I_NumberOfSettlements byzantium < 10
and I_TurnNumber >= 3
add_events
event counter byzantium_conversion_accepted
event counter byzantium_conversion_declined
date 0
end_add_events
historic_event byzantium_conversion true factions { byzantium, }
terminate_monitor
end_monitor
monitor_conditions I_EventCounter byzantium_conversion_accepted == 1
set_religion byzantium catholic
retire_characters byzantium priest
change_population_religion byzantium catholic 75 orthodox 25
set_event_counter byzantium_conversion_accepted 0
terminate_monitor
end_monitor
Combining the accept/decline add_events with the historic_event has always worked for me, and it is what GED used in his Hiring Ancillaries Script so complications are unlikely. Another thing is that your script isn't very versatile, since there's no way for byzantium to convert back to Orthodox, and it will either fire every turn or never fire after the first time(my mind is forgetting if terminate_monitor permanently kills the monitor or just stops it running in that script loop). Consider using countdown timers instead of terminating it, adding a condition that Byzantium is orthodox(can do so via checking and setting a counter if it won't work in the same monitor), and providing a conversion back to orthodox from Catholic. Lastly, I've had trouble in the past with the I_TurnNumber condition, so you could try something like:
Code:
declare_counter byz_time_til_conversion
set_counter byz_time_til_conversion 3
monitor_event PreFactionTurnStart FactionIsLocal
and FactionType byzantium
and byz_time_til_conversion > 0
inc_counter byz_time_til_conversion -1
end_monitor
Then replace the I_TurnNumber with:
Code:
and I_CompareCounter byz_time_til_conversion 0
Counters are much more versatile than any other indicators, so consider using them wherever feasible, because any event from my experience can call them. And if you haven't defined the event byzantium_conversion in historic_events.txt then you need to do so. Finally, the "PreFactionTurnStart" event used above is kingdoms-only, so replace it with FactionTurnStart if you're running the M2.exe