Hands-On Usage
add_mio_policy_cost is commonly used to dynamically adjust the unlock thresholds for military industrial organization (MIO) policy costs. For example, after a nation completes a specific focus tree or meets research conditions, you can reduce the political power cost of a critical policy, providing meaningful reward incentives to the player. It can also be used for penalty mechanics, such as temporarily increasing policy costs when a nation experiences a political crisis.
# Reduce the cost of a production policy after completing a focus
focus = {
id = SOV_industrial_optimization
...
completion_reward = {
SOV = {
add_mio_policy_cost = {
policy = mio_policy_tank_reliability
value = -2
}
}
}
}
Synergy
[add_mio_policy_cooldown](/wiki/effect/add_mio_policy_cooldown): These two are frequently used together to adjust cooldown times while reducing policy costs, jointly controlling the player's usage cadence for MIO policies.
[add_political_power](/wiki/effect/add_political_power): Policy costs fundamentally consume political power, so it is common to grant additional political power in the same reward block, ensuring players have sufficient resources to immediately use the policy.
[has_completed_focus](/wiki/trigger/has_completed_focus): Serves as a conditional check to detect whether a focus has been completed, allowing conditional policy cost adjustments within if blocks to avoid global application.
[add_ideas](/wiki/effect/add_ideas): Triggered simultaneously with add_mio_policy_cost in the same event or focus reward, using ideas to visually mark on the interface that a "policy discount" effect is active.
Common Pitfalls
- Incorrect scope: This effect must execute under
COUNTRY scope. If placed directly in state or character scope, it will silently fail. Always verify that the outer scope correctly targets the intended nation.
- Mistaking cost can go negative: Beginners often assume multiple
value = -X applications can reduce the cost to negative numbers for "free" policy usage. In reality, the final cost is hard-capped at 0 and negative costs do not occur. No error is thrown, making this easy to overlook during debugging.