Hands-On Usage
add_mio_size is commonly used in scripted events or national focus completions to reward specific military industrial organizations with rapid growth. For example, you can grant a nation's aviation MIO an immediate "tier jump" after war breaks out, simulating emergency wartime expansion. It also works well in DLC-style technology tree mods, automatically scaling up corresponding MIO sizes after unlocking specific research nodes.
# Increase the size of a specific MIO upon focus completion
complete_national_focus = {
...
effect = {
var:my_aircraft_mio = {
add_mio_size = 2
}
}
}
Synergy
[add_mio_funds](/wiki/effect/add_mio_funds): After scaling up an MIO, you typically need to replenish its funds simultaneously to offset the maintenance burden from the increased size. These two effects are commonly paired in the same execution block.
[complete_mio_trait](/wiki/effect/complete_mio_trait): Unlocking corresponding traits after size increases embodies the "larger scale, greater capability" growth logic, allowing the MIO to immediately gain exclusive abilities matching its new size.
[has_mio_size](/wiki/trigger/has_mio_size): Check whether the current MIO size meets a certain threshold in the trigger block of events or national focuses before deciding whether to execute add_mio_size, preventing unlimited stacking.
[set_mio_size_up_requirement_factor](/wiki/effect/set_mio_size_up_requirement_factor): If you worry that subsequent upgrades become too easy, you can increase the requirement factor for the next tier while raising the size, maintaining game balance.
Common Pitfalls
- Negative Value Crash: The official specification explicitly prohibits negative input values. If you attempt to "downgrade" an MIO using
add_mio_size = -1, the game will not provide an error message but will instead produce unexpected results or crash. To reduce size, use indirect means such as set_mio_funds or redesign your logic entirely.
- Scope Error:
add_mio_size only works within the INDUSTRIAL_ORG scope. Using it directly in country or state scopes will silently fail. You must first switch to the proper MIO scope via var:xxx_mio_var = { } or a dedicated MIO scope switcher before invoking the effect.