实战用法
remove_relation_modifier 常用于外交事件或焦点树完成后撤销之前通过 add_relation_modifier 施加的双边关系加成/惩罚,例如停战协议到期、盟约解除或特定剧情阶段结束时清除临时外交状态。典型场景是在一段互惠贸易协议结束后,从当前国家视角移除对目标国的关系修正。
# 外交协议到期事件中移除双边修正
country_event = {
id = my_mod.42
option = {
name = my_mod.42.a
# 从本国移除对 ENG 的关系修正
remove_relation_modifier = {
target = ENG
modifier = trade_pact_bonus
}
# 同时让 ENG 也移除对我方的修正
ENG = {
remove_relation_modifier = {
target = ROOT
modifier = trade_pact_bonus
}
}
}
}
配合关系
[add_relation_modifier](/wiki/effect/add_relation_modifier) — 与之成对使用,先添加后移除,构成完整的关系修正生命周期管理。
[add_opinion_modifier](/wiki/effect/add_opinion_modifier) / [add_days_remove](/wiki/effect/add_days_remove) — 若需要带自动到期的关系效果,可改用带 days 字段的修正,配合本命令在手动触发时提前清除残留。
[has_dynamic_modifier](/wiki/trigger/has_dynamic_modifier) — 在移除前用类似的存在性检测思路(或用 has_country_flag)确认修正确实存在,避免无效调用引发日志报错。
[country_event](/wiki/effect/country_event) — 常在事件 option 块中与本命令搭配,实现"玩家选择结束协议 → 立即移除双边修正"的叙事流程。
常见坑
- 必须双向手动移除:
remove_relation_modifier 只移除"当前 scope → target"方向的修正,若当初用 add_relation_modifier 在双方各自加了一次,则必须分别进入两个 scope 各调用一次移除,否则另一方的修正会永久残留。
- modifier 名拼写必须与添加时完全一致:若
modifier = 的值与 add_relation_modifier 时使用的静态修正名称不匹配(哪怕大小写差异),游戏不会报错但也不会实际移除任何东西,导致修正"消不掉"的难以排查问题。