Military industrial organization modding (2024)

此頁面正在由 霜澤圖書館 翻譯中

Military Industrial Organizations (MIOs) represent the applied research and development of your country.They boost your research in their area of focus and modify the stats of equipment produced with their aid.

  • 1 Warning
  • 2 Designing an MIO
    • 2.1 What can you mod?
    • 2.2 Files and Folders
    • 2.3 The Error Log
  • 3 Full MIO
    • 3.1 Layout
    • 3.2 The Properties Explained
    • 3.3 Trait Layout
    • 3.4 Designing a trait
    • 3.5 Initial Trait
    • 3.6 Trait Properties Explained
  • 4 Delta MIO
  • 5 Policies
  • 6 AI Bonus Weights
  • 7 Appendix: Boni
    • 7.1 Equipment Boni
    • 7.2 Production Boni
    • 7.3 Organization Boni
  • 8 References

Warning

Military Industrial Organizations and their policies are loaded only when creating a new game.it is not possible to inject new MIOs/policies into an ongoing game - for development / test runs, you must always create a new game.

You can freely modify what boni a trait grants, what icon to use or the localization. Adding traits is also possible, but removing existing traits can lead to errors.

Designing an MIO

What can you mod?

Fundamentally, MIO modding has four aspects you can modify:

  • A fully independent Military Industrial Organization (Full MIO or Archetype)
  • A MIO modification, based on another MIO, adding, removing or changing traits granted (Delta MIO)
  • A Policy that can be applied to MIOs (typically after reaching Level 6+)
  • AI Bonus Weights, which governs how the AI will prioritize boni granted by traits

Files and Folders

MIOs are defined in /Hearts of Iron IV/common/military_industrial_organization/organizations/, where you can place any number of MIOs in any number of txt files, encoded in UTF8 without a Byte Order Mark (BOM).For example, the game itself comes with one default "generic organization" file, containing the baseline templates, then one for each TAG that has alterations / extensions to that baseline.

Policies are defined in /Hearts of Iron IV/common/military_industrial_organization/policies/, again allowing any number of policies in any number of txt files, encoded in UTF8 without a Byte Order Mark (BOM).

Finally, AI Bonus Weights are defined in /Hearts of Iron IV/common/military_industrial_organization/ai_bonus_weights/

In all three directories of the game you can find a "documentation.info" text file describing some of the thoughts of the designers and some guidance.

The Error Log

While this is true for most aspects of modding, checking the error log has never been more critical than when modding MIOs:The simple fact that most errors impact the start of a game, are unfixable once it is running and that MIOs affect the game in the long run make it simple to waste a lot of time only to have to reset after all.

You can find the error.log text file in "%userprofile%\Documents\Paradox Interactive\Hearts of Iron IV\logs".Check it first after game start and browsing through the MIO menus (browsing the menus will trigger any errors associated with visibility filters).

Full MIO

Layout

<MIO Name> = {# Optional Localization Keyname = LOC_infernal_mio_tanksicon = GFX_keyequipment_type = { <equipment type> <equipment type> }research_categories = { <research type> <research type> }# Mandatory. In Country Scope.allowed = <condition># Optional. In MIO Scope. FROM = country.visible = <condition># Optional. In MIO Scope. FROM = country.available = <condition># Additional Events if desired#on_design_team_assigned_to_tech = { ... }#on_design_team_assigned_to_variant = { ... }#on_industrial_manufacturer_assigned = { ... }#on_tech_research_cancelled = { ... }#on_tech_research_completed = { ... }#on_industrial_manufacturer_unassigned = { ... }# Bonus to assigned researchresearch_bonus = 0.2# How many tasks can the MIO perform simultaneously?task_capacity = 999# Provide custom AI weights to help the AI choose the right MIO#ai_will_do = {#...#}# As many headers as desired.tree_header_text = {text = "Label1" # Either plain text or localization keyx = 0 # Just where on the header bar is the label placed. 0 = Leftmost, 9 = Rightmost}tree_header_text = {text = "Label2"x = 2}tree_header_text = {text = "Label3"x = 4}tree_header_text = {text = "LabelN"x = 8}initial_trait = <initial trait>trait = <trait>trait = <trait>trait = <trait># ... as many more as needed}

The Properties Explained

Properties of a Full MIO
KeyMandatory?DescriptionExample
namefalseIf provided, it will resolve the displayname of the MIO in the following order: 1. <tag>_<name> 2. <name>name = LOC_infernal_mio_tanks
iconfalseThe Icon to use for the MIO in the interfaceicon = GFX_idea_generic_tank_manufacturer_1
backgroundfalseThe background image for the Details window. If not specified, one of standard backgrounds will be used based on supported equipment typesbackground = GFX_key
equipment_typetrueList of equipment types the MIO affects. Used to select which production lines the MIO can be applied to and what the various boni in the traits will affectequipment_type = { mio_cat_eq_all_light_tank mio_cat_eq_all_medium_tank }
research_categoriestrueList of research categories affected by the MIO.research_categories = { mio_cat_tech_light_armor_and_modules mio_cat_tech_medium_armor_and_modules }
allowedtrueThe condition checked AT GAME START whether the MIO is applicable to a given country. At this time, some conditions do not yet apply - for example, the player has not yet taken control, so the "is_ai" condition is meaningless.allowed = { always = true }
visiblefalseWhether the MIO is visible to the nation. Is evaluated in the MIO scope, the country is available in the FROM scope. An MIO must be visible and available for the AI to be able to use it.visible = { always = true }
availablefalseWhether the MIO is available to the nation. Will be grayed out in the UI if not. Is evaluated in the MIO scope, the country is available in the FROM scope. An MIO must be visible and available for the AI to be able to use it.visible = { always = true }
on_design_team_assigned_to_techfalseEvent that triggers when the MIO is attached to a research projectna
on_design_team_assigned_to_variantfalseEvent that triggers when the MIO is attached to a model in the ship/tank/aircraft designerna
on_industrial_manufacturer_assignedfalseEvent that triggers when the MIO is attached to a production linena
on_industrial_manufacturer_unassignedfalseEvent that triggers when unassigned from a production linena
on_tech_research_cancelledfalseEvent that triggers when the associated research is cancelled (be sure to add some deeply annoyed researches with crippling country penalties)na
on_tech_research_completedfalseEvent that triggers when the associated research is completed successfullyna
research_bonusfalseHow much research% bonus the MIO grants by default to associated research. Defaults to the DESIGN_TEAM_RESEARCH_BONUS define valueresearch_bonus = 0.2
task_capacityfalseHow many things the MIO can do in parallel. Defaults to the DEFAULT_INITIAL_TASK_CAPACITY define valuetask_capacity = 3
ai_will_dofalseHow the AI prioritizes using this MIO compared to alternatively available MIOsna
tree_header_textfalseCan be provided multiple times. The headers shown above the trait tree in the MIO menu. "x" represents how far to the right it is placed with "0" being at the left border and "9" being as right as it goes. Text can be a localization key or the straight label.
tree_header_text = { text = my_flavor_text_loc_key x = 1}
initial_traittrueThe initial trait the MIO has without having to invest anything into it.See "Trait Layout"
traittrueCan be repeated any number of times. The individual traits of the MIO that can be unlocked.See "Trait Layout"

Trait Layout

trait = {token = upgrade_1 # mandatoryname = loc_key # optionalicon = GFX_key # optionalspecial_trait_background = yes # optional - default noparent = {traits = { parent traits }num_parents_needed = X}any_parent = { parent traits }all_parents = { parent traits}mutually_exclusive= { upgrade4 }position = { x=1 y=0 }relative_position_id = trait_tokenvisible = <condition>available = <condition> on_complete = <event>limit_to_equipment_type = { ... } # optionalequipment_bonus = <boni>production_bonus = <boni>organization_modifier = <boni>ai_will_do = <modifier> # optional}

Designing a trait

As we can see from the layout, designing a trait comes to a few key steps:

  • Metadata
  • Conditions
  • Placement and relationship with other traits
  • Boni granted
  • AI (usually omitted)

From a metadata perspective, the "token" is a unique name within the current MIO. You can keep it simple without worrying about conflicts with other MIOs.A nice icon helps visually distinguish your trait. The easiest way to figure that one out is to search in "00_generic_organization.txt" for a trait that offers the same kind of boni as yours does and copy it from there.The name is if you want to select a custom localization key (by default it's "<mio_name>_<trait_token>").

Conditions are great to tie an MIO into the Focus tree of a nation. Use "available" for generic unlock conditions, while "visible" is great if the MIO is available in different situations. While for full TAG-based deltas, we would usually prefer going with a Delta MIO, consider the civil war situation in Spain, where you want to just replace one trait with another, depending on just which of the rebel factions - just define multiple traits on the same coordinates and switch between visibility.

Placement and relationship is where things easily get most complex. Fundamentally, you have a placement board of 10 slots wide and 5 high (you can go deeper, but then users have to scroll).This makes X go from 0 to 9 and y from 0 to 4.The parent settings determine the tree structure of your MIO. No parents means the trait can be picked right away - consider placing them at the top of your tree (y = 0) and build down from there. "any_parent" offers "any one among these" kind of parent logic, "all_parents" offers "every single one of them" kind of dependencies. The rarely seen plain "parent" node allows "at least X out of these" kinds of dependencies.Mutual exclusion, finally, is great for making the player pick between two or more options, where they can't just grab all of them. Be sure to place this condition on all traits in the mutual exclusion set, otherwise the player can first pick the trait with the exclusion and then afterwards the other one.

Boni granted - a list of those below in the Appendix - allow you to define the actual benefits (and trade-offs) the trait grants.These fall into three categories:

  • Equipment: Effects that modify the equipment produced. This is what makes your tanks tougher, your ships faster and your fighters dodgier.
  • Production: Effects that make production faster or cheaper, the line efficiency grow faster or to greater heights or conversion of equipment swifter.
  • Organization: Effects that modify the MIO: Support more lines, greater research boni, faster growth, cheaper to assign, etc.

Finally, there's the AI, but best do not touch that unless you really want to.Trait prioritization is best handled through how the AI weighs boni (see chapter below on how to mod that).

Initial Trait

The initial trait you assign to a MIO differs in a few aspects:

  • It has no position on the board
  • It has no icon
  • There is no decision to be made

In other words, most of the trait properties are not relevant to the initial trait. In fact, all properties are optional, but only these five matter at all:

  • name: Localization key, overrides the default "<mio name>_initial_trait" key.
  • limit_to_equipment_type: Narrows the equipment bonus of the initial trait to just a sub-set of its equipment types
  • equipment_bonus: Boni granted to equipment
  • production_bonus: Boni granted to the production of the related equipment
  • organization_bonus: Boni granted to the MIO itself

Trait Properties Explained

Properties of a trait
KeyMandatory?DescriptionExample
tokentrueSystem name of the trait. Must be provided, can be simple
token = gunnery_1
namefalseLocalization key, overwriting the default key of "<mio name>_<trait token>". If defined, the system will prioritize "<tag>_<trait name>" over "<trait name>"
name = my_MIO_gunnery_1_Name
iconfalseIcon to use for your trait. Defaults to GFX_idea_unknown. Check the icons other traits with the same boni use.
icon = GFX_generic_mio_trait_icon_hg_attack
special_trait_backgroundfalseIf yes, trait background will be golden to indicate an interesting trait. Defaults to "no".
special_trait_background = yes
parentfalseProvide a custom trait dependency link. This allows setting conditions such as "Have at least 2 out of these traits." See "any_parent" or "all_parents" for simpler dependencies
parent = {traits = {gunnery_1 stealth_1 mines_1}num_parents_needed = 2}
any_parentfalseAny one of the listed traits must already have been selected.
any_parent = { gunnery_1 stealth_1 }
all_parentsfalseEvery single one of the listed traits must already have been selected.
all_parents = { gunnery_1 stealth_1 }
mutually_exclusivefalseHave multiple traits exclude each other. Must be defined in each of the traits to work as expected.
mutually_exclusive = { heavy_guns_specialization }
positiontrueWhere on the board to place the trait. (x = 0 y = 0) is the upper-left corner, (x = 9 y = 4) is the lower right. It is possible (but not recommended) to go lower by using an y value greater than 4, but that requires the player to scroll and is not recommended.
position = { x = 0 y = 0 }
relative_position_idfalseBy providing this setting, turn the "position"-provided coordinates into coordinates relative to the listed trait. "position = { x=0 y=1 }" would then become "directly beneath the parent trait"
relative_position_id = gunnery_1
visiblefalseWhether the trait is shown on the MIO traits menu. The condition executes in the current MIO's scope, the country is available in the FROM scope.
visible = {FROM = { has_country_flag = <flag name> }}
availablefalseWhether the trait is available (or greyed out). Useful for tying MIOs into the Focus Tree. The condition executes in the current MIO's scope, the country is available in the FROM scope.
available = {FROM = { has_completed_focus = <focus name> }}
on_completefalseEvent that happens when the player selects the trait. Again, a way to integrate the MIO into the narrative of the country. The event executes in the current MIO's scope, the country is available in the FROM scope.
on_complete = {FROM = { set_country_flag = <flag name> }}
limit_to_equipment_typefalseBy default, Equipment and Production boni apply to all equipment types supported by the MIO. This condition allows you to narrow it down to a smaller subset. Useful for specialization traits.
limit_to_equipment_type = { mio_cat_eq_all_light_tank }
equipment_bonusfalseActual improvements applied to all produced equipment the MIO applies to (unless further constrained through limit_to_equipment_type)
equipment_bonus = {armor_value = -0.05defense =-0.05build_cost_ic = -0.03}
production_bonusfalseImprovements applied to the production lines, such as accelerated efficiency gains, greater output or improved conversion rates.
production_bonus = {production_efficiency_gain_factor = 0.15production_resource_need_factor = -0.15}
organization_modifierfalseBoni granted to the MIO itself, such as cheaper assignment, improved research boni or increased task limit.
organization_modifier = {military_industrial_organization_research_bonus = 0.05}
ai_will_dofalseOverride the default prioritization weights the AI would usually apply to this trait, based on the boni given. Usually not recommended.
ai_will_do = {base = 2modifier = {factor = 1.5date > 1937.1.1}}

Delta MIO

TODO: Write

Policies

Properties of a policies
KeyMandatory?DescriptionExample
namefalsePolicy name.
May use scripted localization, scope will be set with the country owning the policy.
name = loc_key
iconfalseIcon to use for your policy.
icon = GFX_mio_policy_my_policy
costfalseAttach cost in political power.
Default is define DEFAULT INITIAL POLICY ATTACH COST "NDefines.NIndustrialOrganisation.DEFAULT_INITIAL_POLICY_ATTACH_COST = 25".
cost = 10
cooldownfalseCooldown in days after attaching a policy.
Default is define DEFAULT INITIAL ATTACH POLICY COOLDOWN "NDefines.NIndustrialOrganisation.DEFAULT_INITIAL_ATTACH_POLICY_COOLDOWN = 180".
cooldown = 60
allowedtrueEvaluated when starting the game.
If trigger returns false, the policy will never be considered later in-game.
allowed = { OR = {has_mio_equipment_type = motorizedhas_mio_equipment_type = mechanized} }
visiblefalseEvaluated when displaying the policy screen.
Default is "always = yes".
visible = { has_mio_size > 3 }
availablefalseEvaluated when displaying the policy screen.
Default is "always = yes".
available = { has_mio_size > 5}
equipment_bonusfalseDefines the bonus given when the policy is attached and the MIO is assigned to an equipment variant.
Note: it's different from equipment_bonus in traits. Here you have to give the equipment group/category/archetype/type.
equipment_bonus = {infantry_equipment = {soft_attack = 0.1}}
production_bonusfalseDefines the bonus given when the policy is attached and the MIO is assigned to a production line.
Note: it's different from production_bonus in traits. Here you have to give the equipment group/category/archetype/type.
production_bonus = {infantry_equipment = {production_cost_factor = -0.1}}
organization_modifierfalseDefines modifiers that will apply on the MIOs.
organization_modifier = {military_industrial_organization_research_bonus = 0.1}
on_addfalseEffects executed when the policy is attached.
on_add = { ... }
on_removefalseEffects executed when the policy is un-attached.
on_remove = { ... }
ai_will_dofalseAI weight modifier for this policy.
Note: this affects how likely AI is to spend PP on this policy.
ai_will_do = {...}

AI Bonus Weights

TODO: Write

Appendix: Boni

Equipment Boni

TODO: Write

Production Boni

All production boni apply to the production lines the MIO has been attached to.

Production Boni
KeyDescriptionExample
production_cost_factorReduces the production cost.production_cost_factor = 0.05
production_capacity_factorIncreases the production output, accelerating the # items produced per day.production_capacity_factor = 0.1
production_efficiency_cap_factorIncrease the maximum production efficiency. Keep in mind, ships don't have that ...production_efficiency_cap_factor = 0.2
production_efficiency_gain_factorIncrease the rate, at which the production efficiency increases. Keep in mind, ships don't have that ...production_efficiency_gain_factor = 0.24
production_resource_need_factorChange the amount of raw resources (Iron, Tungsten, Chromium, ...) needed.production_resource_need_factor = -0.1
production_resource_penalty_factorModify the penalty the production line suffers from not having enough resources.production_resource_penalty_factor = -0.1
production_conversion_speed_factorChange the speed, at which equipment conversions are performed.production_conversion_speed_factor = 0.5

Organization Boni

Organization Boni apply to the MIO globally and not to a specific equipment line / product.As such they cannot be constrained.

Organization Boni
KeyDescriptionExample
military_industrial_organization_research_bonusA flat increase to the research bonus percentage applied by the MIO. If previously it gave 20% bonus and receives a "0.1" bonus here, it will then give a 30% bonus to research.military_industrial_organization_research_bonus = 0.1
military_industrial_organization_design_team_assign_costModifier over how much it costs to assign an MIO in the Tank/Aircraft/Ship designer.military_industrial_organization_design_team_assign_cost = -0.2
military_industrial_organization_design_team_change_costModifier over how much it costs to pull the latest changes from an already assigned MIO for a given Tank/Aircraft/Ship design.military_industrial_organization_design_team_change_cost = -0.1
military_industrial_organization_industrial_manufacturer_assign_costHow much does it cost to assign a MIO to an industrial (that is non-designer) production line.military_industrial_organization_industrial_manufacturer_assign_cost = -0.2
military_industrial_organization_task_capacityFlat increase to the number of tasks an MOI can be assigned to in parallel.military_industrial_organization_task_capacity = 5
military_industrial_organization_size_up_requirementModifies the funds it takes to level up an MIO, effectively accelerating the rate at which you unlock traits. Consider applying this if you design a MIO with an above-average number of traits.military_industrial_organization_size_up_requirement = -0.1
military_industrial_organization_funds_gainModifies the rate at which funds are obtained, which are then used to level the MIO and unlock molre traits. Another lever to increase the levelling rate of an MIO.military_industrial_organization_funds_gain = 0.2

References

模組製作

文件 效果條件定義修正修正列表作用域本地化on action數據結構 (標記, 臨時標記, 國家別名, 變量, 數組)
腳本成就修改AI修改AI focuses自治領修改權力平衡修改劇本/標籤 (遊戲規則)• 建築修改人物修改修飾性TAG修改國家創建軍隊修改決議製作裝備修改事件修改Idea修改意識形態修改軍工商修改國策製作資源修改Scripted GUI科技製作單位修改
地圖 地圖省份補給區域戰略區域
圖形圖像 界面圖形資產實體模型後期特效離子效果字體
裝飾性 肖像命名列表音樂音效
其他 控制台指令故障排除模組結構成就代碼分析
Military industrial organization modding (2024)
Top Articles
Walz VP selection spurs flurry of misinformation online
Every Upcoming Movie Sequel You Should Know About - Looper
Exclusive: Baby Alien Fan Bus Leaked - Get the Inside Scoop! - Nick Lachey
J & D E-Gitarre 905 HSS Bat Mark Goth Black bei uns günstig einkaufen
Otterbrook Goldens
Wells Fargo Careers Log In
Unlocking the Enigmatic Tonicamille: A Journey from Small Town to Social Media Stardom
Owatc Canvas
Big Y Digital Coupon App
What's New on Hulu in October 2023
Evita Role Wsj Crossword Clue
Lesson 1 Homework 5.5 Answer Key
Mawal Gameroom Download
Ladyva Is She Married
Pro Groom Prices – The Pet Centre
Costco Gas Foster City
Grace Caroline Deepfake
Kaomoji Border
Who called you from 6466062860 (+16466062860) ?
111 Cubic Inch To Cc
Clear Fork Progress Book
Dtab Customs
Swgoh Turn Meter Reduction Teams
Mychart Anmed Health Login
Icivics The Electoral Process Answer Key
Airline Reception Meaning
Divina Rapsing
Blackboard Login Pjc
Stockton (California) – Travel guide at Wikivoyage
Visit the UK as a Standard Visitor
2021 Tesla Model 3 Standard Range Pl electric for sale - Portland, OR - craigslist
Deepwoken: Best Attunement Tier List - Item Level Gaming
Gyeon Jahee
Myql Loan Login
Search All of Craigslist: A Comprehensive Guide - First Republic Craigslist
F9 2385
Mcalister's Deli Warrington Reviews
Alpha Labs Male Enhancement – Complete Reviews And Guide
R: Getting Help with R
Strange World Showtimes Near Century Stadium 25 And Xd
Copd Active Learning Template
Deezy Jamaican Food
Hampton In And Suites Near Me
UWPD investigating sharing of 'sensitive' photos, video of Wisconsin volleyball team
Wzzm Weather Forecast
Legs Gifs
Julies Freebies Instant Win
Walmart Front Door Wreaths
Cars & Trucks near Old Forge, PA - craigslist
Cognitive Function Test Potomac Falls
San Pedro Sula To Miami Google Flights
Qvc Com Blogs
Latest Posts
Article information

Author: Foster Heidenreich CPA

Last Updated:

Views: 5591

Rating: 4.6 / 5 (56 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Foster Heidenreich CPA

Birthday: 1995-01-14

Address: 55021 Usha Garden, North Larisa, DE 19209

Phone: +6812240846623

Job: Corporate Healthcare Strategist

Hobby: Singing, Listening to music, Rafting, LARPing, Gardening, Quilting, Rappelling

Introduction: My name is Foster Heidenreich CPA, I am a delightful, quaint, glorious, quaint, faithful, enchanting, fine person who loves writing and wants to share my knowledge and understanding with you.