Hearts of Iron IV - PDXKatten
Hello there!

I hope you are all enjoying the new expansion. we've identified two issues that need a quick fix. Rest assured, this hotfix won't impact your saved games!

The update will be available on the Microsoft Store at the earliest opportunity.


Bugfixes
- Fix political screen to show MIOs in MP for clients that do not possess Arms Against Tyranny
- Support divisions with multiplicative battalion modifiers will no longer be further multiplied by the number of division types of the target type in the template. Tl;dr: no mega artillery stacking with rangers now.
Hearts of Iron IV - PDX Chakerathe
Generals!

Arms Against Tyranny is here and now playable, so make sure to update your games and get working on those Nordic playthroughs- but before you do, let's take a look at the Release Trailer~


https://store.steampowered.com/app/2183930/Expansion__Hearts_of_Iron_IV_Arms_Against_Tyranny/


With the release of this expansion, we've seen performance improvements and quite a few changes as well towards balance, bugfixing and so much more, to review the Changelog check here!

There are some known issues detailed in This Post as well, and we are working diligently to resolve them as soon as possible :)

The Rollback Version for 1.12 will also be available later today as we work on the rollout!

Good Luck to you all in your playthroughs of Arms Against Tyranny, everyone, and if you want to talk all things AAT or play some Multiplayer with others as it's the best its ever been with some of your favourite mods already updated on release, make sure to check out the Discord below!

Hearts of Iron IV - PDX Chakerathe
Generals!

The day is soon upon us, with Arms Against Tyranny and the Stella Polaris update sealed up and ready to ship. The development process for AAT has been a pleasure to be part of, and the team have acquitted themselves admirably throughout - we’re all keen to see what you think of our efforts, and hope you enjoy what we have to offer.

The coming weeks also mark a period of post-release support for us. We prefer to remain reactive to the community’s needs here: creating an immediate post-release ‘roadmap’ actually makes it harder for us to do that. So instead, I’m here to explain that we’ll be here maintaining an active presence, and will react quickly as needed and as time and resources allow.

In time-honored fashion, we’re releasing the patch notes to you early, so you can theorycraft, eagerly anticipate, or commiserate the fixing of your favorite exploits a day or two early. As usual, missing notes can happen, and if we find these they will be added to a spoiler at the end of this post as time goes on.

The 1.13.0 Update & 1.13.1 will be released at the same time.

Note that Localisation for the Changed Log will be added later in the day, and if you missed the Dev Diary that went along with this, you can check it out here!


################################################################
######## Hotfix 1.13.1 "Stella Polaris" #########
################################################################


##################################
# Balance
##################################

- Improved light airframe MIO bonuses to air attack and air defence
- Removed speed buff from agility fighter initial trait
- Reduced air attack bonuses for agility MIO
- Reduced starting civ for SWE by 1 in Västerbotten
- national_socialist_veterinarian and Ardent Conservative now give flat conscription instead of conscription_factor and military conscription speed construction factor

##################################
# Gameplay
##################################

- Added design companies to some pre-designed equipment for Germany, France, Britain, and the Soviet Union
- Folkhemmet is no longer removed when going fascists or monarchist

##################################
# UI
##################################

- Fix of the bug where dynamic modifiers from Nordic Joint focus tree showed wrong text in other parts of UI.
- Fix of bug where plane designer did not update the sprites on auto design.
- From now the country leader traits in diplomacy screen support scripted localization.
- Hardness change in the equipment designer is now displayed as percentage
- Display the correct inter war chassis in research window
- Fixed several text boxes that were too small for non-english localization

##################################
# Modding
##################################

- Added shorthand alias "roic" for console command research_on_icon_click

##################################
# Performance & Stability
##################################

- Fixed a rare crash triggered when a unit is standing on a province involved in a border war without being a participant
-Fixed map overhaul mods crashing on Mac when they went over a certain amount of province/borders. This should address the issue of most major total conversion mods failing to start on Mac.

##################################
# AI
##################################

- Soviet AI sells less rifles and slightly increases armor production
- Non-aggression pact also positively affects acceptance score when purchasing equipment, not only market access
- AI groups equipment by archetype when deciding whether to sell it, instead of per individual equipment variant
- AI will now also buy convoys if needed
- AI should no longer use division templates that are marked as obsolete for suppression, plus added an extra cavalry battalion to the generic suppression target template

##################################
# Bugfix
##################################

- Do not show unactive MIOs when filtering for MIOs that can spend trait points
- NOR: Enabled several post-capitulation focuses.
- Disallow changing the attached policy if a MIO is not available
- Swiss MIO Hispano-Suiza will now require Switzerland to be at peace with Spain, like every other foreign MIO.
- Replaced national spirit Finnish Army by Repurposed Small Industries in the 1939 bookmark window.
- Fixed wrong BoP value for Finland in the 1939 bookmark.
- Fixed rare CTD when opening MIO History tab
- Fixed manpower laws being available when it was not supposed to be available
- Added Danish tank icons for when NSB is disabled
- Fix crash when opening Air Theaters after a civil war
- Fixed wrong icon name for Rikstanken tech icon
- Soviet Union will now lose any claims in Finland after being forced to peace out, and Soviet AI should no longer want to justify on Finland right after it.
- Fix of rare crash caused by border wars.
- Fixed Petsamo not being transferred to Soviet Union after they force Finland to peace out, even though the event tooltip said Petsamo would be transferred.
- Decisions to Fight Alongside our Comrades should no longer become available right after activating them and having the country intervening in the civil war.
- Prevented Finland from taking both decisions to "Request an Armistice with Moscow" and "Offer to Switch Sides in Return for Peace" simultaneously. Now one decision will hide while the other one is ongoing, and the hidden decision will come back if peace was not achieved.
- Fix role icons for planes and ships presets
- Added Danish air plane icons to the air plane designer for Denmark and added the Danish motorized infantry icon to the production line
- Added missing icons for Joint Alliance National Spirits
- Fixed issue with Norwegian Focus Lynrytter's Subsidy
- Adding missing Focus Filters to Joint Focus Tree
- Fixing missing icon for Joint Amphibious Effort National Spirit
- Few MIO traits with no parents and no prerequisites have been moved to the top row of an MIO tree.
- Added the correct starting National Spirits in the Bookmarks for the 1936 and 1939 starts respectively
- Added a missing tooltip claryfing that the Focus "Unify the Right" unlocks a Balance of Power Decision
- In Joint Focus trees, a country cannot start anymore a focus that has is mutually-exclusive with another focus that was already started
- Removed the Danish Balance of Power mechanic without "Arms Against Tyranny"
- More Finnish focuses will now require Finland to be independent.
- Countries with Joint Focuses in their tree but not part of the Joint Focus Alliance should not see the progress of the Alliance
- Added subsidies to the international market for various nations
- Fixed issues with Norwegian Territorial Claims focuses sending ultimatums to the wrong country.
- Removed the option to make Trotsky available from the first event of his chain if the player is going Stalinist
- NOR: Tweaked post-capitulation focuses for Norway. Added several offmap dockyards to the tree to allow for in-exile convoy production.
- Fixed issue with Arrest Quisling requiring the wrong focus to bypass
- Fixed missing names in Icelandic tech and doctrine bonuses from focus tree.
- Tweaked the Danish AI to be more prone to engage with the Balance of Power when under Occupation
- Added requirement for Germany to exist and be fascist for Norwegian focus 'Invite Fascist Engineers'
- Fixed issue where Norwegian Focus 'Proactive Defense' would add funds to unavailable MIOs
- Added missing script variable for national focus equipment modifier
- added a bunch of subject bypasses
- Birger Furugård can no longer be leader and advisor
- Fixed Finland not able to complete Lone Wolf and strike a pact for Continuation War in time when starting from the 1939 bookmark.
- Fixed Soviet production lines MIOs at game start.
- Added Portuguese MIOs to initial production lines
- Bulgarian MIOs now are unlocked with extra size to compensate for them being unlocked later.
- Bonuses from Nordic Alliance will now properly be removed if the faction is disbanded


################################################################
######## Update 1.13.0 "Stella Polaris" #########
################################################################


##################################
# Arms Against Tyranny
##################################

- Added ahistorical Finnish focus tree paths
- Added full Norwegian focus tree
- Added full Swedish focus tree
- Added full Danish focus tree
- Added a full ... other focus tree
- Replaced equipment design company ideas with Military Industrial Organizations (MIOs). MIOs can be attached to research and production, gaining funds and unlocking increased benefits upon your production and equipment.
- Diplomacy tab replaced by the International Market. Equipment can be bought and sold for civilian factory output, giving countries a way of arming themselves with advanced equipment, or war-profiteering for their own gain. Diplomacy menu can be accessed via a button at the bottom of the international market
- Added Special Forces doctrine page, with branches including unique gameplay utility for Mountaineers, Marines, and Paratroopers, and 3 new support battalions
- Added numerous new 3D models including snowmobiles, cold-weather infantry, and a reindeer for some reason
- Added many new music tracks for Nordic countries, as well as several main game themes

##################################
# Feature
##################################

- Land trade routes are now shown on the map. Trade Embargo action now prevents land-based trade from passing through a country if they are embargoing the final recipient.
- Land Doctrines now contain a variety of bonuses to specific support battalions which enchance the capabilities of other battalion categories in their division
- Added support for historical tank templates in the tank designer, accessed from tank chassis blueprints
- Added a new focus for Germany that gives Germany resource rights for Västerbotten, and Industry for Sweden
- Added modding and script support for 'joint' national focuses, allowing several countries to progress in the same shared focus branch
- Added Finnish historical focus tree paths

##################################
# Balance
##################################

- Reduced Germanys steel
- increased Swedens steel and tungsten from 220 Steel, 67 tungsten, 42 chromium to 260 steel, 123 tungsten and 63 chromium (closed trade respectively)
- Added seperate divison design groups for combat support battalions
- adjusted acclimatization tolerances across the board, it should now be gained in a more realistic range of temperatures
- added lend lease threshold modifiers to automomy and economy levels
- added lend lease threshold modifiers to ideologies
- Super Heavy tanks are now support companies. Super Heavy tanks are no longer line battalions
- Support company research times now have a curve with a shorter starting time (approx 120 days, from 200). Subsequent support techs have a gradually increasing research time.
- Cavalry supply usage returned to the same level as infantry
- Engineer support upgrade techologies now yield 33% entrenchment per level
- Added a new adjuster type: Snow. This kicks in if a province is considered to have the snow ground condition.
- Several nations now have the ability to unlock a second special forces branch specialism in their focus trees. Nations that reach major status can also unlock a second branch specialism after 1940.
- Most tank chassis' now grant 10-20% more armor
- Super heavy tanks now cost more overall, but require 20 per support company
- The winter war should now start according to historical timetable
- Tip of the Spear military spirit now grants flat special forces cap instead of naval invasion capacity. Commando trait now adds flat special forces cap instead of SF defence. This should make it possible to run a modest elite force irresepective of the size of your military.
- added 5% for local resources from compliance gain (from 0.6 to 0.65)
- People's Army focus now grants a battalion modifier from military police to horseback cavalry suppression value
- slightly reduced air accident rates
- reduced the factor on accident chance for air excercising
- New airwing deployment now takes 30 days, from basically nothing
- increased the max effect of intel on enemy mines
- Field Hospitals now grant 15% experience loss prevention from 10%
- Maintenance Company Research 3 now provides 1% Equipment Capture per armor battalion in a division, from 5% flat
- starting french Char B1 variant is now a basic heavy chassis
- ENG & USA start with 200 more convoys
- reduced the base damage of mines for both strength and org
- reduced mine accident chance´, reduced mine impact on speed
- mines are now much less potent in deep ocean and shallow sea's, hit chance reduced for mine in these areas
- maratime patrol bombers wing size is now 10
- AA tank anti-air modules have between 10-20% more air attack
- Super Heavy AA, TD, and SPART are now support battalions, not line battalions
- When a puppet controls a province that's part of a strait, the overlord's policy is now considered, preventing the puppet from letting through the overlord's enemies or their puppets.
- increased hardness penalty for wheeled and half track suspension for tank designer
- USA now starts with tank engine 1 tech
- slight balance changes to welded and cast armour to fit reality better
- tank speed & armour upgrades are now added stats not multiplicative
- tank base speed, armour & reliability rebalanced for changes to above upgrades
- Excess thrust will now increase agility instead of max speed
- airframes now how base max speeds to better representairframe size speed effects
- added damage reduction to piecing thresholds for naval combat
- convoy hitprofile reduced from 120 to 85 bringing it inline with new hitprofile calulations
- torpedoes accuracy increased to bring them back inline with new hitprofile calculations 145 > 100
- slightly decreased AA disruption from ship AA
- reduced terrain combat widths slightly, change support widths also
- major air rebalance pass for airframes and modules
- increased tech date for survival studies to 1939
- Improved aircraft turrets, slight decrease in agility hit for large bomb bays
- rebalanced, ship engines, removed visibility impacts from medium guns, rebalanced IC costs to reflect engine changes
- super heavy armour now part of normal heavy armors, rebalanced armors, added cruiser armour to carriers
- Armor skirts provide 1 more armor
- doubled the effect of agiltiy on naval anti air fire
- removed visibility effects of suepr heavy bb armor
- small airframe can only take single terret modules, adjusted turret stats so they are less powerful for fighters but better for bombers
- rebalanced thrust and weights of modules and airframes, added new modules
- Added new techs for blame designer
- Agility and speed increase effect on air combat
- updated combat width defines
- implemented type 2 combat widths
- rebalanced dismantle and conversion costs for BB eninges
- adjusted damage reduction thresholds for ships

##################################
# Gameplay
##################################

- Adjusted Swiss focuses so they pause instead of cancel when conditions are not met

##################################
# Stability & Performance
##################################

- Fixed rare out of sync triggered by player observing armies intercepted at sea
- Improved game performance by up to 30% based on hardware. Machines with higher spec will notice a greater difference.
- Improved perceived performance and responsiveness during high processor load


##################################
# UI
##################################

- In the division designer you can now shift-click on a battalion to remove it from the template
- Fixed various issues with some tech folders in the tech tree on non-standard resolutions
- Fixed issue where some notifications were visible in front of windows and the loading screen.
- Now right clicking on railway gun repair line will pan camera to the unit and left clicking repair line will select the unit.
- Fix priority buttons for all production line types
- Now, if you hover mouse over a invasion arrow, the whole path will be visible even if it is overlapped by another one.
- Fix bug where the army leader traits overlapped the preferred tactics icon.
- Add equipment upgrades to have increment/decrement with 5 and 10
- Victory point map icons now have independent visibility thresholds based on their own VP value. Several new defines added to control this behaviour
- Doctrines with unfulfilled allow conditions now correctly display as unselectable, and list conditions.
- Show Active setting on generals subwindow is now respected the first time you open it

##################################
# AI
##################################

- AI now evaluates motorization per-supply-node, resulting in reduced truck usage, and more sensible overall priorities.
- Further improved AI behaviour for germany as regards Africa and suicide-invasions
- British AI will no longer be denied access to the baltic unless Germany is war mongering in europe (meaning trade can once again flow between UK and the Nordic states)
- AI should no longer embargo countries who are helping them with lendlease or volunteers (looking at you, Spain)
- AI more likely to upgrade divisions in the field even with equipment deficits
- added generic AI upgraded infantry template for late game infantry
- added ENG and USA upgraded infantry templates for AI and imrpoved their infantry templates in general
- reduced the maximum targeted sea regions per strike force fleet for AI
- improved air tech priorities
- ENG will build more Mil factories and ease up on fighters after it has enough, and will generaly build a few more bombers
- USA will build more maritime patrol bombers
- USA and ENG will try build more dockyards pre war
- USA will now do liberty ships national focus in 41
- added albania and sardinia ai areas
- eng will resist the urge to invade useless italian land to early
- Italy will once again join the anti-comintern pact
- ai build slightly more cas and bombers
- AI will now recreate Austro-Hungary by decision if they own the correct cores
- improved AI templates for planes
- SOV should now be more inclinded to defend Leningrad during the Winter war
- ai is less interested in railway gun research
- eng fighter templates are now upgraded with a higher prio
- improved the UK's invasion & defense strategies for historical accuracy
- Germany will now go to war with the USSR if the a Norweigan, Danish or Dutch controller is a player, for the Dutch both Belgium and France must have fallen
- Improved fascist AI peace conference logic resulting in less bordergore, but fewer puppets
- Switched default Peace Score options to roll in puppets to faction leaders
- Partially improved AI ability to use non-standard equipment types and templates. This will be further iterated on.
- AI for some majors will now unlock and construct additional Marines templates, along with unlocking the new SF doctrines
- AI for some majors will now unlock and deploy paratroopers as part of their line forces. By design, they will not perform paradrops.

##################################
# Modding
##################################

- Now the resource values will be localised.
- Make sure triggers are re-evaluted when reloading events and scripted loc
- effect give_resource_rights now accepts a variable or a keyword for receiver parameter
- From now on, tooltip for add_dynamic_modifier effect will show the variable values in dynamic modifiers
- Fix add_resource so that give_resource_rights can be executed right after without having to wait for an hour to pass
- Added ai_wanted_divisions_factor ai strategy, which acts as a % modifier
- Fixed the use of scripted loc in name and description of dynamic modifiers
- Add the heavy_fighter category for medium plane with fighter weapons
- fix is_subject tooltip when used within multiple targets triggers like any_country
- Ocean, the default naval region terrain type, is now handled as any other sea terrain type; tooltips will show modifiers as expected, and map colors and modifiers should be applied properly.
- Tech folders will now correctly hide their name field if disabled. Follow the naming pattern in countrydoctrinetreeview.gui to achieve this result.
- for has_resources_rights, if input state has no resource, the trigger will return false instead of crashing


##################################
# Graphics
##################################

- Use DX11 flip mode and allow tearing when supported by driver. Make sure FSAA pass isn't done on UI.

##################################
# Bugfix
##################################

- AI strategies that abort will no longer purge all values related to the strategy type they affected
- Fixed issue where exiting the intelligence window did not lead to swapping back the map mod to previous one.
- Now the recruiting of colonial division is capped in same way as recruting other divisions.
- Fixed the bug where long messages in the lobby message input field sometimes appeared in two lines.
- Super Heavy Battleship armor now reduces Torpedo critical chance instead of increasing it
- Fixed disappearing icons in division designer when NATO symbols are used
- Fixed issues with misplaced focus branches in UK and USA focus trees when Hide Obsolete Branches custom rule was set as "Show".
- Conscription factor modifiers under 0.1% are now respected [precision error]
- Now the deployment target state tooltip will contain the proper state name.
- Don't allow export (lend-lease etc) of chassis/hull/airframe equipment
- Fix serialization of 64 bit integers
- Various Military focuses now give the right completion effects, such as Night Penalty, or land doctrines, and research bonuses
- Fixed issue where some icons persisted on screen during peace conference.
- Fixed the bug, which made it impossible to play singleplayer after leaving a multiplayer lobby which loaded multiplayer save file.
- Fixed issue where certain regions did display the weather on the 3D map.
- Fix a CTD when loading an older save
- Units are now properly ejected from border wars
- AI should no longer attempt to design strategic bombers too heavy to fly
- fixed loc for prefered tactics modifeirs in army spirits
- recalcuate the cached trade influence
- Fixed Hungary being able to spam Sweden for support if they are democratic
- You can now paradrop in peacetime in your own territory, and paradropping should no longer cause airwings to get stuck
- Prevent CTD and log error if script invalidated a war relation while it is still being added
- German Ai should now use correct Tank icons and models where possible
- AI tank templates (and new historical templates) now work properly for templates that have out-of-order module requirements (big gun+ fixed superstructure ie)
- Japanese AI template for Heavy TD II is no longer too slow to move
- Axis AI and Historical tank templates now (probably) use the correct sprites and models
- incorrect count of military factories given to other countries
- player could request more licenses than available factories
- Fixed bugs in ReleaseFactories in trade
- Exiled templates should now be removed after peace conference even if the hosting country is not among the losers
- fixed incorect can convert for light tank super structure
- Paradrop missions can no longer get stuck when trying to target a region they are not allowed coverage in. Regions without coverage can no longer be targeted by paradrop mission selection.
- AI should keep using their factories even if all their equipment needs are fulfilled
- Turkish AI will no longer randomly decide to pick a military junta to succeed Ataturk on historical
- SOV should now try to be more aggressive at Karjala
- Fixed hardlock after getting kicked from a server
- Fuel Usage modifier will now appear with the right color: red when positive, green when negative
- fixed ship armour penetration calculation, proportional system can now work in parralel to stepped system
- old armor penetration value for ships set to 0
- fixed missing agility values for bomb bays
- fixed damage reduction happening before stat initialisation, fixed +1 to threashhold values
- Romanian and Hungarian focuses that created a tech sharing group for military doctrines now grant doctrine cost reduction instead
- Industrial Destruction modifier tooltip is now present
- Industry Liasons no longer provides double bonus to airframes
- Free French 'intervention in' focuses can no longer target countries in a faction with Free France
- Counter-decision 'Disarm Monarchist Militants' for targets of polish monarchism now correctly removes monarchy support
- Added missing flag localisation to Ethiopia's Build Resistance Force decisions.
- Democratic Hungary can no longer spam Sweden to join their war endlessly
- Changed Ethiopia missing localisation "GetName" to "Ethiopia" as opinion does not allow for dynamic names.
- POL : Made Develop Gdańsk Shipbuilding and Integrate Gdańsk Industries actually require Gdańsk.
- POL : The National Commonwealth can now be completed if Lithuania is a subject
- ETH : Hindenburg Wall now does not build in provinces not occupied by Ethiopia
- POL : Changed Integrate Gdansk Industries to require Coastal rather than Gdansk province, otherwise Naval tree is blocked.
- Soviet national spirit Transformation of Nature now grants a flat +1 Building slot.
- TUR : Join Axis focus will now check to see if Germany still exists and if they are the faction leader. Turkish Join Axis event trigger was also tweaked to give it a timer for more consistent with CD guidelines.
- British AI will no longer only use biplane images for every type of plane
- Fixed Penal Battalions being available outside of the locked template for Soviet Union.
- The German's no longer become upset at Lithuania for banning Naziism if they themselves don't accept the ideology
- The Soviet's can no longer resolve their Border issues with Japan by giving them North Sakhalin if either they don't control it, or Japan doesn't control South Sakhalin
- Some cities that should have been renamed after a white victory in the second Russian civil war were not included. They are now safe from Stalin.
- The Soviet focus "Claims on Bessarabia" can now lead to correct wargoals if denied by countries other than Romania, and will now bypass if the Soviets are already at war with the owner.
- Modifying a variant but retaining the same number of modules no longer fails to register any changes to the saved variant (in rare cases)
- Japan will once again surrender to Manchuko in an independence war, if the war was bloody enough
- Fix issue where the AI wouldn't design any planes if it didn't have any plane designs to produce.
- Fixes missing requirement in GER focus Expand Dockyard Facilities
- African countries with generic alll weather experts will correctly use a defined portrait
- Developing the Eregli steelworks decision is no longer visible to non-turkish nations
- Planning spirit awarded to czechoslovakia anbd faction members no longer disappears
- CZE will no longer be able to give away sudetenland while at war with Germany
- Switzerland tooltip fix
- Turkey will no longer be able to join the Axis if there is no Axis
- Opinon modifier is correctly removed from Spain if Balearic islands are transferred
- Tooltip for french advisor is more specific now
- Hungarian Re-armament events use the correct name def if hungary has changed cosmetic tag
- Hungarian FIghter Competition now provides the correct number of fighters (from 0)
- OTO Naval Guns now grants navy experience if MtG is not owned, as opposed to an unusuable research bonus
- Novus Ordo Italian state modifier now correctly has an icon
- Mohammad Yayyo no longer has a blank portrait if BBA is disabled
- Railway Guns are less likely to stay put
- El Salvador no longer has access to ancient Lost Technology when BBA is enabled
- El Salvador has replaced their ancient Lost Technology with the ability to produce basic infantry weapons
- Fixed Italian focus Flotta d'evasione being always unavailable with MTG
Hearts of Iron IV - PDX Chakerathe
Bonjour à nouveau, friends! I don’t know if the third time makes it a tradition but I appear once more before release to give some updates from HoI’s tech team.

If you haven’t seen much of me since last year, it’s because I’ve partly been busy with **REDACTED**, **REDACTED** and also with **REDACTED**, but my attention has fully returned to HoI for the last couple months.

So, what’s new with HoI’s tech in 1.13 “Stella Polaris”?

Mines, or the greatest urban legend

First off, great news, naval mines will not slow down the game anymore! Hurray!


Except that’s a lie. The “mine lag” I keep reading about in some community house rules isn’t a thing. Hasn’t been for 2 years. I know because I fixed it in 1.11 (Barbarossa). But don’t feel bad for missing the notice, as it turns out this change from December 2020 (shipped in 2021 with No Step Back) never ended up in the changelog.

commit da0ce4ac94ba1938459ffb6abe3bf2b0cd4bab1e Author: Mathieu Ropert Date: Mon Dec 14, 17: 38:59 2020 +0100 [X] Fixed performance issue when mines are used

Oops.

But I have even better news. While the usage of mines didn’t slow the game down, the existence of mines as a concept was still incurring a performance cost, whether you used them or not. This has also been greatly improved for 1.13.

So go ahead. Go nuts. Mine the whole ocean. See what happens.


V-Sync, G-Sync, Free-Sync, NSync…

While there is no big platform update this time (supported operating systems remain the same), we have introduced some small improvements to rendering tech in HoI.

The main one is support for variable refresh rate monitors and GPUs. If you use DX11 (the default since 1.12) and your hardware supports it (and you use Windows 10 or higher), you should get more FPS with vsync off. On my NVIDIA RTX 3060 at work, it goes up from 140-150 FPS in 1.12 to about 190 FPS in 1.13 when the game is paused.

I’m not saying you’ll actually be visually able to tell the difference, but you wouldn’t be our fans if you didn’t like when numbers go up, so this should give you some stonks for free.

We’ve also tweaked a bit how the game renders when unpaused, especially when your hourly/daily tick starts getting slower than 16/33/50ms (depending on game speed). Long story short, the “cost” of keeping the FPS going steady when the simulation gets more CPU heavy has been improved, meaning better FPS and less perceived “lag” especially in speed 4 and 5.


General performance improvements

I used the mines example earlier as a teaser, but in general this update comes with a good amount of performance improvements. Those were partly inspired by having spent time looking at our other titles and a bunch of secret stuff I sadly cannot delve into, and partly just due to getting a fresh set of eyes on old problems.

Here’s some side by side comparison between 1.12 (Avalanche) and 1.13 (Stella Polaris).

First, a fresh new 1936 game on my work i7-12700k and it’s 20 cores:

HOI4 1.12 “Avalanche” - 1936 - Intel i7-12700k


HOI4 1.13 “Stella Polaris” - 1936 - Intel i7-12700k

And here’s 2 similar-ish saves from 1943, same machine:

HOI4 1.12 “Avalanche” - 1943 - Intel i7-12700k


HOI4 1.13 “Stella Polaris” - 1943 - Intel i7-12700k


This might look a tad overwhelming if you’ve never seen the in-game profiler from previous dev diaries (console command imgui show profiler to make it pop in game). The bits I would like to direct your attention to are the “Ticks per second” and “Last 24 ticks average” that give you a rough idea of how fast the game is going.

Long story short, the 1936 scenario goes from a 15ms average to 10ms average for the hourly tick (the time it takes to simulate one in-game hour). Or if you prefer, from 42 to 64 hours simulated per second.

In the 1943 scenario, where there are way more wars, divisions, fleets and planes involved, we go from 43ms to 29ms hourly tick average. Or again, up from 17 to 27 in-game hours simulated every real world second.

In both cases, this makes the simulation about 1.5 times faster. In practice, the perceived speed will be a bit less because we still need to account for GPU time and the like, but it should be fairly noticeable still.

Of course, we understand that not all of you are running top of the 10th+ generation i7 CPUs, so it would only be fair to also look at what it means on lower end machines. Luckily, I also have access to a modest AMD Ryzen 3 1200, a quad core CPU that the internet tells me is roughly equivalent to an Intel i5-7400. Brace yourselves for more graphs.

First, 1936:


HOI4 1.12 “Avalanche” - 1936 - AMD Ryzen 3 1200


HOI4 1.13 “Stella Polaris” - 1936 - AMD Ryzen 3 1200

And then the same 1943 saves:


HOI4 1.12 “Avalanche” - 1943 - AMD Ryzen 3 1200


HOI4 1.13 “Stella Polaris” - 1943 - AMD Ryzen 3 1200

First off, if there was still any doubt in your mind, yes, switching to a beefier machine will absolutely make HoI run faster. As you can see in the numbers here, this ran about 3 times slower than the high end 20 core machine from before.

Second, you can also see that 1.13 still performs better than 1.12 (about 25-30% faster), but not as much as on a high end machine. “Why?” you ask. Because threads!


HOI4: You Can(not) Multithread

It is a recurring misconception that Paradox games don’t use more than one thread. This is obviously not the case. I’ve been talking about it since my days on Stellaris.

But it is true that some parts of the game simulation are better than others at making use of many cores. And once they’ve been made to only use one core, it’s usually quite difficult to change as the game simulation starts relying on it.

This all comes back to the olden days where Europa Universalis was a board game ported to PC. After all, it is fairly common for those to be designed in a way where each actor takes a turn. The German player moves all his troops on the board. Then the British. Then the Soviets. Etc… This is a very serial process. Easy to understand and design, but slower than if every player could go at the same time. And of course it is very hard to change after the fact, because if everyone suddenly starts moving at the same time then you get conflicts and need rules to identify and resolve them.

Crusader Kings 3 resolved most of those issues by taking a radically different approach to its technical design, but we obviously don’t have that luxury. And no, unlike what I’ve heard before, this has little to do with the engine. Understand that ol’ Clausewitz (and its friend Jomini) are mostly concerned with graphics, networking, loading and saving files, that kind of stuff. The bulk of the performance bottleneck isn’t there, it’s in the game simulation and that’s almost entirely up to each game to decide how they wanna approach it and that decision is usually made (and hard to change) in the first years of the game development, before it even releases.
Still, in this patch we were able to identify places where we could break that “turn-based” design and replace it with a simultaneous process and nobody would be the wiser. Which allowed us to throw all your cores at the problem, rather than rely on the one.

This is, I believe, the main reason why you will notice more improvement the more cores you have. For example, if a process took say, 2ms before. Now it will take 0.5ms with 4 cores (2/4) and 0.1ms with 20 cores (2/20), roughly speaking. Here’s a rough outline of HoI4 CPU usage in a late 1942 save with 20 cores for example:


Notice the CPU chart at the top which shows how many cores are being used at a given time. Ideally you’d want it to be fully green all the time, but this is what we get with the upcoming release of HoI4.

For those of you who are more technically inclined, I can recommend you this (updated) talk I’ve given at ACCU 2023 about multithreading challenges in PDS Games.

Multi Threading Model in Paradox Games: Past, Present and Future - Mathieu Ropert - ACCU 2023


And with that, I’ve just noticed something off while making the screenshots for this dev diary, so I’ll go back to investigate and see if there’s some more we can do to improve even more in the post-release patches 😎

I will leave you with this side by side comparison of letting the game run for 30 seconds on 1.12 vs 1.13. Keep an eye on the date/time at the top.


Hearts of Iron IV - PDX Chakerathe
Hello, and welcome back to the last Developer Diary for Arms Against Tyranny!
I’m CreamGene, HOI4’s 2D artist and since I am here, you guessed it, it's time to talk about art!

I once again get an opportunity to talk about what happens on the Art Front during a HOI4 production and I’m excited to share with you some of the things that have been in the works. Both challenging tasks as well as funny ones, of course.

I know I usually showcase the how-to when I do loading screens when I get these opportunities, but I think you can find the two latest descriptions from earlier Dev Diarys to be adequate if you need to know the “how-to-think”. But I’ll show some small step-by-step just because I can.

Loading screen
It started with our Game Designer Bradley, or as you know him as well, Corax, who already had a vision for what he wanted. He wanted two different ones. One of the Finnish Winter War, with Finnish soldiers watching Soviet troops, make their way through the frozen marshlands. And one with the sinking of the Blücher. And I got to choose which one to do.

Of course, I chose explosions because I hate myself that's pretty cool. I drew explosions before, but never like this so I thought it could be a nice challenge… if I could pull it off.

I was provided with reference images of the ship and the place as well as a video clip of the event from the movie The King's Choice. Even if it’s a reenacting of the sinking of Blücher it still is a pretty cool scene to draw inspiration from.
So let's speedrun this demonstration!



3D elements put together! Renders made by our 3D artist @Slurpen_Paradox (because if I can avoid hard surfaces, I will).


Here, the paint-over progress has started. …… trust the process.


After a loop of feedback and paint-overs, it finally starts to look like something more interesting than just a dark blob where it started. Just some more tweaking and adding texture as well as some action and it’ll be done.


And here we are! I hope you’ll enjoy the new loading screen for Arms Against Tyranny!

Here is also the winter-themed one (tho I can’t take credit for it) made for AAT.

[Art made by @the_real_timor]


The Joint Focus Tree
We also wanted to do something new for a Joint Focus Tree when the discussion of a joint Nordics was a must. So now the idea phase starts. How different should it look? How much of different shapes will still make you think “Focus Tree”? Will it look good together as a tree? How do we best portray the different ideologies for each outcome?

So now some thumbnailing of ideas happens as well as the thought “Is just the naming bar enough to change?” The answer is ‘no’. Of course, we wanted to go full out when we had this new idea.


So when we realize that we want to make the actual focus icons mirror the ideologies we have a new question “What would a joint focus tree even look like? What would have to change to make it stand out?”
So I started to make up the shape language for what each ideology would feel like.
It ended with a bunch of experiments that you saw @carloPDX showcase in the Joint Focus icon Dev Diary

Yeah… I didn't feel anything out of these.


We landed on these types of shapes in the end!
The communist one is in line with sharp angles, red and gold, and feeling very industry.
The democratic one with its very simplistic design and a retake on the metallic swan.
And the monarchist one, in Sweden at least, we call the moose the “King of the Forest” so we thought it would be fitting to have a King represent all the Nordics with pompous decoration and gold details.


A small selection of the communist branch icons;


A small selection of the democratic branch icons;


A small selection of the monarchist branch icons;



Portraits
And now I think it's important to show off some of the fancy portraits that have been added for the Nordics!

The amount of art that needs to be done for each DLC varies but something that stays true, and heavy is Portraits and Focuses. These are easy to outsource in bulk and to offload the strain of getting all the art done for each DLC on time, we send these types of art tasks to an outsourcing studio.
We occasionally have to pick up these types of tasks as well in-house but that’s usually when Content Designers realize they need a leader for a last-minute polish task and a path they forgot would do with an actual portrait of the historic person instead of a generic one. Safe to say, it's impossible to plan for every leader there will be for their specific country. I know I wouldn't be able to think of everything beforehand, and that's why I can’t stress enough that to get a successful art-filled launch, communication is key.

So, here is a small selection of historical figures we would like to showcase beforehand!





Focus icons
With the same principle as the portraits for HOI, these are easier to outsource in bulk, and therefore the majority of them, tho far from all, are done through outsourcing.
We usually try to make as much as we can in-house for these but we need to prioritize our workload to fit our schedule the best we can.
We always estimate all our tasks beforehand so whatever we know we can’t manage in-house will be shipped to outsourcing.

And once again, a small selection of some of the nicest looking Focuses for AAT.





3D art
Even if I am not in charge of the 3D art (in fact that's entirely @Slurpen_Paradox’s domain) I will of course show off some of the models that have been made for this DLC

First of all, let’s enjoy some high-definition renders showing some of the models up close:

These guys have dressed up for today's fashion show!


A mix of old and “new” (maybe new is too strong of a word here).


You need to be ready to fight against air and land attacks.


Okay, maybe that’s enough land vehicles for one Dev Diary.


In other news, here are some planes!


..more planes!


Ready to fight against tyranny!

Here are some in-game screenshots showing some of the models in action (using some fun camera angles of course!):


They see me rollin’!


Danish militia models in fighting stance!


These guys are deadly in snowy conditions!


Norway has some ships to defend its coast!


Things are heating up!




Thank you @Slurpen for the 3D renders!

Let's be real, you’ve been waiting, you’ve been scrolling, you’ve been sighing through this DD. Go ahead. Don't be shy. Scroll down some more.

Finally! I would like to present the achievements of Arms Against Tyranny!

Achievements

Sápmi, United by the fire
As Sami, own and control every Sami core.


Norway Jose
As Norway, own and control every Mexican core.


Pinot Noirway
As Norway, own and control the state of Burgogne.


Cheese your fighter
As Norway, with Peder Jarlsberg as coutnry leader, own Telemark, Glouchestershire, Normandy, Lombardia and Holland.


Med Plutonium 2…
As Denmark, nuke Sweden.


Everything is Awesome
As Denmark, get Maximum Welfare Spending after January 1st 1941 without being puppeted or capitulating


The Danelaw
As Denmark, conquer England.


Vinland
As Iceland, conquer Newfoundland.


Brexit
As communist Iceland, make Wales, Scotland and Northern Ireland rise up against the United Kingdom.


Two Arms Against Tyranny
As Finland, capitulate the Soviet Union while having a 2 country faction with another Nordic.


Uralic Brothers United!
As Finland, have Hungary, Estonia, Sapmi, Karelia, Mari El, Udmurtia, Komi, Ostyak-Vogulia, Yamalia, and Nenetsia as subjects.


Lone Wolf
As Finland, form Greater Finland and own every core and claim without having ever joined a faction.


No One Crosses the Finnish Line
As Finland, survive until 1944 without losing control of a single core ever.


Danzig Queen
As Sweden, own Danzig.


Caramelldansen
As Sweden, puppet Japan.


The return of the King
As the exiled King of Gotland, retake mainland Sweden.


Satisfactory
Have at least one MIO per category at level 10+.


Cod Wars
As Iceland, capitulate the UK.


The Magic School Bus
With the Per Albin Bus, drive to Cape Town



We all hope that you’ll enjoy the up-and-coming DLC, Arms against Tyranny, and along the way have fun and feel challenged with the new content and achievements we have added, as well as enjoy the latest models and art!

CreamGene

https://store.steampowered.com/app/2183930/Expansion__Hearts_of_Iron_IV_Arms_Against_Tyranny/
Hearts of Iron IV - PDX Chakerathe
Generals!

We've released another Arms Against Tyranny tutorial! Get ahead of your enemies and discover the ins and outs of MIOs with this quick primer from Dijondillan

Watch it here

Hearts of Iron IV - PDX Chakerathe
Generals!

With the release of Arms Against Tyranny, there will be plenty of saved games and mods that will be broken as we move into the Stella Polaris patch, so if you haven't already make sure to finish up those games or backdate your versions!

However, we have been hard at work with the Modding community to make sure some of your favourite mods are up to date alongside the release of AAT! So here is your comprehensive list of mods that will be updated on the same day as the new patch;


Road to 56

https://steamcommunity.com/sharedfiles/filedetails/?id=820260968


Kaiserreich

https://steamcommunity.com/sharedfiles/filedetails/?id=1521695605


Equestria At War

https://steamcommunity.com/sharedfiles/filedetails/?id=1826643372


Millenium Dawn

https://steamcommunity.com/sharedfiles/filedetails/?id=2777392649


The New Order: Last Days of Europe

https://steamcommunity.com/sharedfiles/filedetails/?id=2438003901

Cold War Iron Curtain

https://steamcommunity.com/sharedfiles/filedetails/?id=1458561226&searchtext=

Kaisserredux: A Kaiserreich Expansion

https://steamcommunity.com/sharedfiles/filedetails/?id=2076426030&searchtext=

Old World Blues

https://steamcommunity.com/sharedfiles/filedetails/?id=2265420196&searchtext=

BlackICE Historical Immersion Mod

https://steamcommunity.com/sharedfiles/filedetails/?id=1137372539&searchtext=

Expert AI

https://steamcommunity.com/sharedfiles/filedetails/?id=741805475&searchtext=

Pax Britannica: An Imperial Timeline

https://steamcommunity.com/sharedfiles/filedetails/?id=2792132018&searchtext=

Lord of the Rings Mod

https://steamcommunity.com/sharedfiles/filedetails/?id=1314446921&searchtext=

End of a New Beginning

https://steamcommunity.com/sharedfiles/filedetails/?id=2856963714

World Ablaze

https://steamcommunity.com/sharedfiles/filedetails/?id=2149567872


Hearts of Iron IV - PDXKatten
Hello there it's me C0RAX. It's time for another feature dev diary and this week we are going to look at the International market.

So previously we showed this feature off in the international market dev corner and some things since then have changed. We’ve on top of this loaded the feature with brand new functionality to improve the flow and usability as well as refine the information we provide you throughout the feature. So remind ourselves let's go over what intents and goals we started with in that original dev corner.

Feature Intent & goals

Introducing a place for nations to buy and sell equipment benefiting both nations with a reward. Creating a new way for countries to contribute specialist equipment to other nations
Be able to source equipment from other nations as needed
For majors to set the global standard for common place equipment leveraging their superior economic might.

The international market acts as a one stop shop for all your equipment needs from other countries. It's an international store front, with multiple sellers being able to sell the same thing from the same store front. This means that provided you have the appropriate market access, you can go into the international market and buy tanks from the USA and planes from germany in one interface (but not 1 purchase).

The feature

So first of all, how do we get to the international market? Well, it's pretty easy. We have replaced the diplomacy button with the international market. This will take you to the home screen of the international market



You Can still access the diplomacy menu from this button at the bottom of the international market.


Now let's go buy something. The first thing we need to do is to get market access to another country. This will allow us to see what they are selling on the market. By default we have access to all of our subjects and they have access to our market.


The market access is by default automatically sent and accepted so any AI that will accept will be added to your market and you will get access to them as well meaning that you don't need to worry about missing out of a market you could have access too. You can also toggle auto accept purchase requests which will always accept other countries asking to buy your equipment on the market.


To manually get market access we simply go to the diplomacy screen for a given country and use the diplomatic action “negotiate market access”.


So now we have our market access set up and it's time to buy something. First we need to go into the buying mode of the international market. We do this by clicking the buy equipment button.



Now we can see the USA is selling some trains and convoys on the market right now so let's buy some. To start a purchase draft all we have to do is click on a piece of equipment we want to buy.


Here we can set up our contract to purchase some equipment. From here you choose how many pieces of equipment you wish to buy of each type. Each equipment entry will show how much the equipment of that type will cost in economic capacity(EC) (this is the output of civilian factories). There is also a handy purchase button if that is what you wish and you can use keybinds to change the steps of the plus and minus buttons just like in other parts of the game.



At the bottom of the draft we have the draft totals, here we can see the total EC cost, total convoys needed and then finally we have our payment settings. We can choose to assign up to 15 factories to pay for the equipment. These factories will work towards paying off the total EC cost of the equipment you selected. The more you pay every 30 days, the more equipment will be delivered per delivery. So here we can see that with 5 factories paying for our equipment we will receive all of our equipment in 4 deliveries:120 days.


Now we have sent off our draft to the USA and we just have to wait for them to respond and accept.


And here we have our accepted and now ongoing contract, we can see all of the important information on our contracts from here. Active contracts are shown in the default international market screen.

We can see our factories are assigned and paying off the contract and all 4 convoys are available. If anything is causing deliveries to fall behind the expected amount be that lack of factories, convoys or even if your convoys are being intercepted and the equipment lost to the depth of the ocean, the contract efficiency will reflect this.


As your contracts progress you can see the bars fill up and the deliveries tick down.

Now let's sell something on the market.


To sell we click the “sell equipment” button right now we can see we are not selling anything so now let's add something to our market. We do this by clicking on the ‘add equipment to market’ button.


Here we will get all of the surplus equipment we have in the right hand window and everything we are adding to the market on the left. From here we have the same controls for equipment numbers as with buying. You can select all, or choose any number in-between.




Additionally from the screen we can set the price levels of equipment, this can be done for the whole set or individually for each equipment. You can set the price to be 25% higher or lower than the normal price, this is done in order to not overcomplicate the economic gameplay here. Fully Variable prices would be very complex to understand as a player and be at odds with the economic detail of the rest of the game. This inconsistency would make the pricing very troublesome to understand, keep stable and to keep free from exploits. Generally this would detract from the core gameplay of HoI in a negative way, taking time and concentration away from the warfighting for something less useful. The final total EC value is shown at the bottom of the window if you want to see the effects of your pricing choices.


Now we can see all of our equipment has been added to our market for sale.


We have now received our first purchase requests and you can see our equipment has been taken from our market listing as it is reserved while the requests are pending. Let take a look at one of these requests


Here we can see Sweden is looking to buy the 35 light tanks we put up on the market. In the request we can see all of the necessary contract details to make an informed decision. Of course if we had auto accepted purchase requests this would have already been automatically accepted and the contract would be ongoing already.


And now we can see our purchase of american equipment and our sales of equipment to portugal and sweden all in one menu allowing you to easily keep contract of you ongoing contracts and if there are any issues with deliveries. We can also filter this list to just buying or selling if you have lots of contracts all at the same time, and we cancel contracts from here if you need to do so.

Going back to the buy menu lets take a look at some of the sorting and filtering options that help in the later game when there is significantly more equipment on the market. First lets look at the sorting options.

First we can sort by the amount on the market.


And we can sort by the EC cost


Now onto filters; we can sort by country and by equipment type



Finally we get to subsidies. Subsidies are a way of getting a better deal with purchasing contracts, you can get them from national focus and decisions or any other bit of content. An example of this can be found in the danish focus tree where you can get subsidies for buying aircraft if you choose to seek external sources. As mentioned subsidies target specific equipment types such as fighters and can be limited to contracts with specific countries as well. They work by having an EC value and when applied to a contract they will match the EC generated by your factories until the EC value of the subsidy is drained. So if 1 civ produces 5 EC/day then the subsidy will also provide 5 EC per day for each civ allocated to the contract.




With the general flow we will look at the detailed mechanics of how payment works. We are paid for contracts in EC generated by factories assigned by the buyer. Instead of receiving those factories directly to use, you are given the EC output of those factories to boost your own civilian factories. We opted for this solution in order to improve the granularity of bilateral trade, as well as to give the seller a new kind of incentive to take part in trade.


Here we can see our EC income from all of our current contracts, any collected EC is stored in our EC surplus here in the market window.


Here we can see the EC surplus being applied to your construction queue to boost it above the normal maximum rate. The amount you can boost a construction is based on your trade law. Here we are on export focus which gives us a 10% boost on top of the base 25%. This can also be affected by other construction boosts. The important thing to understand is you do not receive temporary foreign factories, you receive their EC output which boosts your own civilian constructions.

As an addendum to the addition of the international market we have adjusted lend lease in order to better fit to the new world market. So let's talk about the changes there. Firstly, subjects can no longer always use lend lease and are subject to the same limits as other countries. Now subject levels have modifiers to the required world tension in order to use lend lease.


In addition to this ideology and laws impact the tension requirements for lend lease, fascists and communists will find it harder to give equipment for free to there allies compared to before as will countries who operate on tighter trade laws


Countries on closed economy and special cases such as the USA can also block access to certain markets or totally block all market access so be careful before taking foci like the neutrality act.


That's all for this week, as always please do ask if you have any questions about the feature and I’ll do my best to answer you. Next week we will be looking at the final art DD, you will get to see more 3D models, 2D art (including the new loading screen art) and the coveted achievements coming with Arms against tyranny, I hope to see you there. C0RAX Out.

Hearts of Iron IV - PDX Chakerathe
Generals!

The fourth and final Feature Breakdown video for Arms Against Tyranny is out NOW over on our YouTube channel!
This one spotlights the new Military Industrial Organizations feature, as well as the upcoming changes to Support Companies!

Make sure to check out the video!


Hearts of Iron IV - PDX Chakerathe
Hello there it's me C0RAX. It's time for another feature dev diary and this week we are going to look at military industrial organisations (MIO’s).

Now we talked about the concepts of the MIO’s in the Dev corner in may but since then we have done a lot of work taking onboard internal and community feedback and from that work we have changed lots of things. This means that some of the things we talked about previously in the dev corner won't be true anymore. That's enough prefacing so let's get into it, let's see what the finished MIO’s look like.

So to reiterate what we went over in the last dev corner here is what we identified and how we wanted to improve it. Firstly we have the current model of companies in HOI.

Currently we have to provide static modifiers and sometimes change them via scripted decisions or focus rewards, this makes them very un-interactive and mostly something you click once and then forget about, it's just another modifier on your country.

By creating a more organic system to upgrade your design companies you the player can now decide what these upgrades are and tailor them to fit your playstyle. Additionally we can now reward the player for using a design company as opposed to simply having you save up a resource and click a button, rewarding you for putting effort into them.

From this we had an intent and goals established.

Intent
  • Create a sense of a living organisation the player can interact with rather than a static bonus as with current design companies.
Goals
  • Allow the player to define their designer direction.
  • Integrate design companies into production
  • Provide a framework for national specialisms that can be used on the world stage
So let's see what the final version of the MIO’s look like. So firstly how do you see your MIO's? This is as simple as previously you can find your MIO’s in the political menu where you would have found the buttons to unlock design companies before.



From here we can click on details and this will show the detailed page for that specific MIO, this is where you will upgrade that MIO as it grows in size.


Right so this is very different from the mock ups from the dev corner so let's go through this.

Firstly let's talk about the progression change in the middle. Previously we had 6 departments (3 design, 3 manufacture) each with their own stats and unlocks; this now has been condensed into 1 tree covering everything for the MIO. The old design was very void of narrative and feeling and often was overwhelming with choice but underwhelming in effect. By bringing everything into a tree like so with fewer actual unlocks your choices are more impactful and the compromises are clearer. The trees also allow for a narrative progression through the small advances made within companies that the bonuses provided represent.


In addition to this we have unique traits for some MIO’s that represent them having their historical unique capabilities.


Departments now represent the groupings of equipment an MIO will affect this allows you to have a quick snapshot of the bonuses an MIO can and is offering so if you see an MIO with a department for medium tanks you know to expect it to give you houses for that and once you’ve unlocked some of those traits you will see them on the department/


Now we have some entirely new things. So let's start with the initial trait. Every MIO has an initial trait this provides bonuses to that MIO always and generally designates the type of MIO so an MIO such as supermarine has the initial trait agility fighter this tells us this MIO is focused around agility for small aircraft and the initial bonuses will also be for that



Next we have policies, policies are mid upgrade bonuses. They cost political power and provide a bonus that is outside of the normal traits you would get for the MIO. These bonuses specialise you MIO in certain directions from making it grow faster or giving bonus stats or building faster. Once you select a policy you cannot change it for 180 days so you need to make sure you’re selecting the ones you need for each MIO because they are long term choices.





Now we will get onto using the MIO’s, so as detailed before in the dev corner MIO’s are applied when we research now, so when you go to research something that has an applicable MIO for it you will get the option to attack an MIO for a small PP income cost or to research without an MIO. MIO’s offer research time bonuses so attaching them makes the time faster and adds funds letting your MIO increase in size as you research.

If you didn’t attack on MIO or want to change the attacked MIO you can also do this after researching. You can go to any equipment and create a new variant and attack or change the MIO on the equipment for a small XP cost. Once an MIO is attached to equipment it will apply to any further variants you make.





However the MIO attached to equipment is a snapshot of the traits of the MIO when it was applied and must be upgraded to gain any new traits unlocked since then also for a small xp cost. This can be done via the make valiant screen or via the history tab.


The history tab in the MIO details screen shows every equipment you have with that MIO attached and any equipment currently being produced by the MIO. from here you can upgrade the MIO on the equipment up to the latest traits individually or you can upgrade all non obsolete ones with the upgrade all button. You can also upgrade all whenever you unlock a new trait via a check box.



Finally we can add mio’s in the equipment designers this works the same as with other equipment but we do when designing the equipment.




Finally we have production, any production line can have an MIO attached so long as it has the equipment designed in one of its departments, most MIO’s will have production bonuses for equipment allowing for faster or more efficient production when they are attached. On top of this you also gain funds from producing equipment so building something with you MIO’s will let them increase in size faster. This is integrated into the flow when you add a new production line and can be added later simply via the production menu







Modding
Implementation of new MIO’s are very easy, you can create a new one or “include” and extend/modify an existing one all natively in the api.

An MIO has a basic structure like this

<code>
equipment_type = { mio_cat_eq_all_light_tank mio_cat_eq_all_medium_tank }
research_categories = { mio_cat_tech_light_armor_and_modules mio_cat_tech_medium_armor_and_modules }
<code>

This acts to tell the MIO what equipment it will be affecting with traits and which tech categories it will be applicable to. Here we are using a new type of collection for MIOs equipment categories; these are script defined sets of equipment types that allow you to reference all of them with a single token instead of having to declare each one individually for every instance.

<code>
initial_trait = {
name = generic_mio_initial_trait_standardized_production

equipment_bonus = {
armor_value = -0.05
defense =-0.05
}

production_bonus = {
production_cost_factor = -0.1
}
}
<code>


Next we are defining the initial trait that is modifiers that the MIO starts with, these can affect the equipment modifiers, production modifiers or MIO modifiers like fund gain or research bonus speed.

<code>
trait = {
token = generic_mio_trait_simplified_suspension
name = generic_mio_trait_simplified_suspension
icon = GFX_generic_mio_trait_icon_reliability

position = { x=1 y=0 }

equipment_bonus = {
reliability = 0.05
}
}

trait = {
token = generic_mio_trait_crew_ergonomics
name = generic_mio_trait_crew_ergonomics
icon = GFX_generic_mio_trait_icon_maximum_speed

position = { x=4 y=0 }
relative_position_id = generic_mio_trait_simplified_suspension

equipment_bonus = {
maximum_speed = 0.02
defense = 0.02
}
}

trait = {
token = generic_mio_trait_improved_tracks
name = generic_mio_trait_improved_tracks
icon = GFX_generic_mio_trait_icon_maximum_speed


position = { x=0 y=2 }
relative_position_id = generic_mio_trait_simplified_suspension

any_parent = { generic_mio_trait_simplified_suspension }

equipment_bonus = {
reliability = 0.05
maximum_speed = 0.05
}
}

<code>


Now we are defining the traits we can declare where they exist on the trait grid and if they have any parents that they connect to and what parents are needed for the trait to be accessible. As above we have the any_parent trigger. We can also do things like mutual exclusivity and other things expected from hoi4’s trees.

When creating traits we don't always have to affect everything, we can limit a trait to only affect specific equipment. By using the “limit_to_equipment_type” we can select an equipment type that MUST be contained in the “equipment_type” categories defined.

<code>
tree_header_text = {
text = mio_header_tank_construction
x = 3
}
<code>


Finally for normal MIO setup we have headers, these are text entries that you can position on the grid. They will always be above a trait on the same grid location and are fixpoints numbers so can go between grids.

Now that works great for a new MIO but now let's talk about taking an existing one and expanding on it to make it a bit more unique without having to duplicate this for every MIO.

<code>
include = generic_medium_tank_organization
<code>


This include line will take all the script from the defined MIO and use it for this new MIO; we can now modify this include as well. We can simply declare non trait values normally and they will override just like with parenting in other parts of hoi4’s scripting. However for traits since they are a tree they need to have some explicit commands.

<code>
add_trait = {
token = ENG_mio_trait_expanded_turret_capacity
name = ENG_mio_trait_expanded_turret_capacity
icon = GFX_generic_mio_department_icon_tank_medium_tank_engine
special_trait_background = yes

position = { x=1 y=1 }
relative_position_id = generic_mio_trait_all_round_cupola

any_parent = { generic_mio_trait_all_round_cupola }
limit_to_equipment_type = { mio_cat_eq_all_medium_tank }

equipment_bonus = {
reliability = 0.05
armor_value = 0.05
breakthrough = 0.05
}
}
<code>


Here we can see we have used the add trait line to add another tree to the tree just for this MIO, we are even able here to give it a parent by using the token for a trait declared in the included MIO. in addition to add we can also “remove_trait” and “override_trait” if we wish.

The final part I'll talk about for trees is the allowed and available blocks. Allowed & available works just like any other in the game. We can lock MIO’s for any reason. So if you want to stop a trait from being available because of a decision or national focus you can do this. And allows you to lock MIO’s to specific countries but is only run on load as with other allowed blocks.

The finally part of MIO’s is policies

<code>
mio_policy_land_cutting_corners = {
icon = GFX_mio_policy_cutting_corners
allowed = {
OR = {
has_mio_equipment_type = armor
has_mio_equipment_type = motorized
has_mio_equipment_type = mechanized
has_mio_equipment_type = anti_tank
has_mio_equipment_type = flame
has_mio_equipment_type = anti_air
has_mio_equipment_type = artillery
has_mio_equipment_type = rocket
has_mio_equipment_type = infantry
}
}
available = { has_mio_size > 5}
equipment_bonus = {
same_as_mio = {
build_cost_ic = -0.1
reliability = -0.05
soft_attack = -0.05
hard_attack = -0.05
armor_value = -0.05
}
}
}
<code>


This is a policy in script. It's very simple to implement but we have a few special things for MIO’s. Has_mio_equipment_type is the trigger used to ask if the MIO has a specific unit type defined in “equipment_type = {....“ so this is very useful for making sure policies are only allowed or available for the mio’s you want. Finally we have same_as_mio this dynamically makes the stat bonus apply to whatever equipment was defined for “equipment_type = {....“ So we don't need to worry if the armour bonus we add with a policy is targeted against the correct equipment or cover them all, so long as we are allowing them correctly we just add the modifiers under “same_as_mio”.

That's a quick round up of most of the core parts of MIO’s from a modding standpoint but feel free to ask questions if there's something still unclear.

That's everything for this week as always feel free to ask questions about this feature and I'll do my best to answer them. Later this week we will be looking at the International Market feature. I hope to see you there. C0RAX Out.
...