Thanks. I was trying to keep it in the spirit of the Diplomacy mod, rather than include every type of change that I want to play with, in hopes that it could continue to serve the same role.
. Here's the fragment of the script that I altered. I've put Diplomacy 3.3.2 stuff in blue, and stuff I added in red:
...skipped beginning of script...
(try_for_range, ":other_faction", kingdoms_begin, kingdoms_end),
(faction_slot_eq, ":other_faction", slot_faction_state, sfs_active),
(neq, ":faction_no", ":other_faction"),
(store_relation, ":other_faction_relation", ":faction_no", ":other_faction"),
(store_relation, ":player_relation", ":other_faction", "fac_player_supporters_faction"),
(store_mul, ":relation_change", ":difference", ":other_faction_relation"),
(val_div, ":relation_change", 100),
(val_add, ":player_relation", ":relation_change"),
##diplomacy start
(try_begin),
(store_add, ":truce_slot", "fac_player_supporters_faction", slot_faction_truce_days_with_factions_begin),
(val_sub, ":truce_slot", kingdoms_begin),
(faction_get_slot, ":truce_days", ":other_faction", ":truce_slot"),
(this_or_next|eq, ":truce_days", 0), #other faction only affected if no truce
(gt, ":difference", 0), #or change > 0
(store_relation, ":cur_relation", ":other_faction", "fac_player_supporters_faction"),
#display relation change message
(store_sub, ":relation_change", ":player_relation", ":cur_relation"),
(str_store_faction_name_link, s1, ":other_faction"),
(assign, reg1, ":cur_relation"),
(assign, reg2, ":player_relation"),
(try_begin),
(gt, ":relation_change", 0),
(display_message, "str_faction_relation_increased"),
(else_try),
(lt, ":relation_change", 0),
(display_message, "str_faction_relation_detoriated"),
(try_end),
#display war declaration
(try_begin),
(ge, ":cur_relation", 0), #old relation > 0 -> peace
(lt, ":player_relation", 0), #new relation < 0 -> war
##nested diplomacy start+
#This is the source of the "fake war" bug. I think this should get rid of it:
(try_begin),
(this_or_next|eq, "$players_kingdom", "fac_player_faction"),
(eq, "$players_kingdom", "fac_player_supporters_faction"),
##nested diplomacy end+
(call_script, "script_add_notification_menu", "mnu_notification_war_declared", ":other_faction", "$players_kingdom"),
##nested diplomacy start+
(try_end),
##nested diplomacy end+
(try_end),
##diplomacy end
(set_relation, ":other_faction", "fac_player_faction", ":player_relation"),
(set_relation, ":other_faction", "fac_player_supporters_faction", ":player_relation"),
##diplomacy begin
(try_end),
##diplomacy end
(try_end),
...skipped end of script...
, which may work when you are the lord of your own kingdom, but won't work when you're a vassal (since your king and fellow lords are not a member of either of those factions).