Tried this again in my campaign and yeah it went back to war next turn. So I took a look at the script. I'm trying to read it but although the monitors are somewhat similar to the triggers in descr_character_traits, I still find this so much more complicated.
So there seems to be two monitors that can set the diplo status to war:
Code:
monitor_event FactionTurnEnd FactionType f_rome
and DiplomaticStanceFromFaction f_carthage != AtWar
if I_IsFactionAIControlled f_carthage
and I_SettlementOwner sett_045 f_carthage
and I_SettlementOwner sett_046 slave
and I_CompareCounter RomansNearMessana = 1
set_counter RomansNearMessana 0
if I_CharacterTypeNearTile f_rome, named_character, 1, 147, 137
set_counter RomansNearMessana 1
end_if
if I_CharacterTypeNearTile f_rome, general, 1, 147, 137
set_counter RomansNearMessana 1
end_if
end_if
if I_CompareCounter RomansNearMessana = 1
console_command diplomatic_stance f_rome f_carthage war
end_if
end_monitor
;
monitor_event GeneralCaptureSettlement SettlementName sett_046
and FactionType f_rome
and DiplomaticStanceFromFaction f_carthage != AtWar
if I_IsFactionAIControlled f_carthage
and I_SettlementOwner sett_045 f_carthage
and I_CompareCounter EleutheroiHoldMessana = 1
console_command diplomatic_stance f_rome f_carthage war
end_if
end_monitor
I think it's the first monitor that's the problem since the second monitor should only activate when you capture messana. Ok so if I'm reading it right(which I probably aren't since this is the first time I'm looking at monitors) it would seem like the first part of the monitor sets the RomansNearMessana to 0, but then sets it to 1 if there is a roman general or named_character(is this a captain?) near messana. Then the second part sets diplo status to war if RomansNearMessana is 1.