• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

Developer Diary | Modding

Greetings all,

Today we have quite a number of items for the dev diary. We’ll be covering some new additions to the career profile system, followed by some new tools coming for modders in the Avalanche update.

To begin with, I’ll hand over to our designer on the career profile:



Hello!

Ingevar here with an update regarding new features coming to the Career Profile.
Since the release of Career Profile earlier this year we've been working on the next iteration that will bring more stats, non-ironman achievements, and some profile customization.

Let's look at it in detail.


Playthrough Overview

When BBA is released, every player will find the playthrough overview available in the ESC menu when playing the game.​
image1.png

This familiar window will contain some numbers for your current playthrough, including new stats and awards.


New Stats

We are adding more stats to track combat efficiency like the amount of offensive and defensive battles, the ratio between them, or the ratio of battles versus encircled divisions. We want these stats to be a better depiction of each player's playstyle and will continue to add more, so if you have any suggestions, please tell us in the comments.​
image6.png

Stats for Modded Games

Previously we gathered numbers only from the vanilla version of the game, but now we've added a separate set of data for games played with mods.

Both base game and modded games stats are working in single-player games, at least for now. We are looking into making MP counts as well, so stay tuned for future updates on that topic.​
image12.png

Awards

Awards are medals and ribbons: new kinds of in-game achievement that don't require you to play in Ironman mode.
image4.png

Medals have three grades: bronze, silver, and gold. Each grade is harder to get than the previous one, with the aim that bronze is something you can get just by playing the game, while gold will require a dedicated effort and might not be achieved from the first try even by the most experienced players.

Ribbons have no grades, but the difficulty is there for most of them.​
image14.png

Awards won't work with most mods, cause you can never predict what the mod changes and therefore if the award required any challenge at all.

At the same time, we know that mods are an essential part of the HoI experience, so together with the base feature, we're introducing support for modded awards.
Any modder will be able to use all existing UIs for creating a list of unique awards that can be tracked, awarded in the game, and then displayed in the Career Profile.


Profile Customization

Every grade of medal you get and every ribbon will also award you with some Career Points.

Career Points are used to unlock Profile Pictures.​
image2.png

Some Pictures are unlocked after you get one or two medals, but others will be available only to players who dedicate a substantial amount of effort to getting lots of gold medals.
image7.png

Friends
All this comes together in the last feature I'd like to show today.

We're adding a Friends list to the game. You'll be able to find it in the main menu when BBA is out.​
image5.png

Friends window will have all your friends from Steam or Xbox and for now will only be used as a shortcut to viewing each other's Career Profiles.

By default, every profile in the game will be viewable by all your friends, but you can choose to make it private, this option will be available right in the Career Profile window.


TL;DR

All these features will be released together with the avalanche update. So any player who has the base game will be able to access Playthrough Overview, Awards, set their Profile Pictures, or view the Friends list.

The story of Career Profile just starts here and we plan to add more awards, stats, and profile customization to the game based on the feedback we get from you.
Hope you like this when it's out.


Modding In-Game Achievements

One of our new features for modders is a system to support custom achievements.

The feature aims :​
  • to allow mods to define their own achievements​
  • to display them and their completion status in-game​
  • to save them when a player completes them so that they appear as achieved when starting a new game​
Hard limitations :​
  • the achievements will not be displayed on steam (or other stores)​
  • no way to know the completion rate among players​
We have joined forces with Red King and their career profile to present those achievements in the prettiest way. Also the new Ribbon system will allow modders to easily illustrate their achievement without any graphic skill ! Of course if you are a master of the 64x64p icon, you can emulate our classic achievement illustration.​

image9.png
The Awards screen with mod achievements. Icons or ribbons, the choice is yours.


image13.png


A sample of script to define achievements

Behind the scenes, these achievements are earned and stored based on the game’s modset. Modifying the modset should clear achievements, but if the modset remains constant, any achievements earned will be persistent to that combination of mods.


Unit Medals and Units

Arheo back now to go over some more details on the script accessibility for our new features.

As mentioned briefly last week, unit medals are being added in BBA. These are fully scriptable, and take a similar form to regular database objects you’ll be used to working with.

Since the modifiers that can be applied via medals take a different path to regular modifiers, the list of possibilities is somewhat shorter than in other modifier scopes.

We’ve added a list of options at the top of the medals file, though we’re open to future suggestions if you find yourselves in need of something new:​
image15.png

You’ll note that the leader modifier is unused in the vanilla game. This modifier will translate over to army generals if the leader is promoted, and exert effects on the entire army.

The one_time_effect field will run an effect in the unit scope, though you should be able to scope to a unit’s owner and run effects on a country from this block.

Working with units is, as previously mentioned, new to script in the avalanche update. For the time being, only army units are accessible through script, though this may be expanded upon in future updates. The following effects will be available to you:

random_country_division
every_country_division
random_state_division
every_state_division
reseed_division_commander
destroy_unit
add_history_entry
change_division_template
add_unit_medal_to_latest_entry #usually used in combination with add_history_entry, otherwise you may not guarantee a valid entry.
add_divisional_commander_xp

Combined with the following unit conditions:

any_country_division
any_state_division
division_has_majority_template
unit_strength
unit_organization
is_unit_template_reserves
division_has_battalion_in_template


Balance of Power

The Balance of Power feature is built in a way that makes it extremely flexible, and therefore probably very useful for modders. Any given country can only have one Balance of Power at any given time - but there’s nothing stopping you from having several that you switch between as things evolve.

The definition might seem a bit tricky at first, but that’s only because it is extremely flexible. It starts like this:​
image17.png

This example is from Ethiopia - you set the id of the Balance of Power, the starting position, and the two starting sides. The sides are defined further down, and you can replace them with other pre-defined sides using script. This means you can, instead of changing the entire Balance of Power, just replace one, or both, of the sides should you want to do that instead.

You also define a decision category as the Balance of Power category, meaning that you can script Balance of Power decisions the same way as you would script normal decisions. The will then appear in the Balance of Power UI. So basically anything you can do with decisions, you can do in the Balance of Power UI…

Each side is further divided into ranges with a min and max value, and a set of modifiers that are active when you are in this range. Again, the ranges are customizable, so you can have basically as many or as few as you like (within reason).​
image11.jpg


As you can see from this example you can also run effects when the range becomes active or when the balance shifts away from it.

You can also set/change the graphics of the side as you like:​
image16.jpg


What else? Well you have triggers based on the Balance of Power, so you can lock Focuses, decisions, events, or whatever behind the Balance of Power being at a certain level. You can modify the balance either with one off values or with a ticking score. And you can of course remove it altogether.

In all I expect to see some wonderful applications of this in mods going forward.


Peace Conferences

Peace conference modding has now become somewhat simpler, as well as being more consistent with the rest of the game’s scripting standards albeit at the cost of some rather verbose dotscoping chains.

Peace conferences now primarily work on a per-state basis, with the exception of ships and stacked bids (which due to technical limitations are not very accessible to script).​
image10.png

Every turn, each state will be subject to two evaluations for the country from whose perspective you are playing or viewing. The first evaluation will define the bidding cost per action type for a state, and the second will define the ai desire to bid on said state. These two values do not correspond, but are affected by each other.

In the entry above, this cost multiplier will be applied at point of bidding for a country that is either NOT puppeted, or is bidding for itself, to states which are their cores.

You can add categories here which will consolidate their values in the tooltip for that state during a peace conference. This cost multiplier will only work on bids of the ‘take states’ type, but multipliers can be made to affect any combination of bid types if treated as an array.

A state can be subject to multiple cost reductions, which stack multiplicatively.

The evaluation of AI desire works in a very similar way:​
image8.png


Instead of affecting the cost, this affects the ai’s subsequent evaluation of the cost when deciding what to bid on. Here, the AI is subject to a -75% desire to liberate tags that belong to the is_unlikely_country_tag scripted trigger. In short, it means the AI will prefer not to release certain wacky, wonderful tags. AI desire can also be subject to multiple modifier entries, and these will also stack.

The AI evaluates costs with a bucketed per-type approach, rather than simply bidding on the best cost*desire entries. This goes some of the way towards reducing bordergore, and effectively takes a sample of the desire of bids of the same type and target - France for example, would consider all Puppet Switzerland bids to be of the same value to try and avoid leaving holes.


Debugging Tools

We’ve expanded the options in our imgui during By Blood Alone, and now this handy air region tool will be in your hands:​
image3.png

You can access this with the console command imgui show air, followed by selecting an air region. This will give you up-to-date information on the details of the wings present in the area and their efficacy.



And that’s all for this week! Next week there will be a break in dev diaries, but tune in in two weeks for a round up on the technical situation and changes coming in the Avalanche update.

/Arheo​
 

Attachments

  • image7.png
    image7.png
    1,7 MB · Views: 0
  • image9.png
    image9.png
    84,5 KB · Views: 0
  • image13.png
    image13.png
    23,5 KB · Views: 0
  • 46Like
  • 21Love
  • 13
  • 2
Reactions:
Interesting. Will there be any more commands and triggers we will see in the changelog? Also, it doesn't seem like we can make scripted peace actions but changing the cost modifiers is nice i guess. The Balance of Power mechanic is also growing on me a bit now.
 
  • 1Like
Reactions:
How does the creation of characters work after promoting the new divisional commanders to regular army generals?

Will it be possible to tie a predetermined divisional commander to an existing military advisor already in game so that his advisor level can be improved after promotion?

Because iirc you said divisional commanders are not yet characters.
 
No DD on achievements?
 
  • 5Like
  • 1
  • 1
Reactions:
Seems like a lot of useless fluff, unfortunately. It's not as if we couldn't do balance of power stuff beforehand with dynamic modifiers and guis. The divisional commander system could be really frustrating too; if we can't specify a set of historical divisional commanders (with portraits) to pull from first, prior to dipping into the randomised pool, then some of the useful characterisation and flavour that can be done with manually designing general/commander lists will be lost.

Best of luck on the launch, though.
 
  • 12
  • 1
Reactions:
Seems like a lot of useless fluff, unfortunately. It's not as if we couldn't do balance of power stuff beforehand with dynamic modifiers and guis. The divisional commander system could be really frustrating too; if we can't specify a set of historical divisional commanders (with portraits) to pull from first, prior to dipping into the randomised pool, then some of the useful characterisation and flavour that can be done with manually designing general/commander lists will be lost.

Best of luck on the launch, though.
This scripting is a whole lot easier for modders to apply though, so definitely QoL
 
Further ideas for medal modifiers I would find important for modding:
- Defence factor (similar to beeaktrough)
- combat width factor
- max speed, retreat speed
- org penalty from moving
- supply graceo, out of supply penalty
- trickleback, recovered equipment bonus
- soft attack/hard attack/piercing
- basic terrain modifiers
- invasion/river/fort modifiers
- 'can withdraw' bool
- AA factor/ CAS damage reduction/air superiority factor

Will also take the opportunity to ask if more of the existing modifiers could be expanded to other scopes, leaders (like army org factor), terrain (like (air) ground attack/cas damage reduction, armor factor) or tactics (like armor factor, strength/org damage dealt/received multipliers)

And finally a bit unrelated to the previous two points but adding a scripted modifier for fleet positioning would give more freedom to the effects from positioning versus the current defines)
 
  • 4Love
Reactions:
If you bring something like this, what I'd LOVE to see is a system, where you can get permanent bonuses for a next playthrough!


For example:

- If I earn a bronze medal for building 50 Civs it would also give me permanently +1% building speed for Civs in future games. (Depending on the level of the medal it could give +2% or +3% for silver/gold)

- "Destroyed xxxx enemy Tanks" > Permanently +1% piercing and hard attack for all units in future games.

... and so on.

(Or maybe you have to buy these bonuses with your career points?)


These bonuses should of course be optional, not for iron man mode and have a way to be enabled/disabled before starting a game, especially in multiplayer.
(e.g. a third checkobox "Use Career Bonuses" or something.)


But I'd love to see a "rogue like" System like that and it would give me a lot more motivation to get all those ribbons and medals, than just getting a new profile or background picture or some other cosmetics.




Another idea would be, that you have some pre defined slots, that you can buy upgrades for.

e.g. in your profile you have the following slots:

Industrial, Technologies, Air, Water, Land, Political

And you can buy/earn and choos one bonues for each slot.

- Industrial > 5% more Civ buildspeed (other options would be more buildspeed for Mils, Infrastructure etc.)
- Technologies > 5% faster research for tanks (other options would be the other research fields)
- Air > 5% more ground attack (other options would be other plane stats)

... etc.

Of course this could also be expanded into more upgrade slots for example that you have one for each unit type and so on..



yeah sorry for the long post and I know not everyone would like such a "grindy" feature, that's why I would keep it optional.
But personally I would love to see some system like that, so that I can choose my own starting bonuses or like said above, have some "rogue like" mechanics to improve in strength by just playing the game.
 
Last edited:
  • 26
  • 1Like
  • 1Love
Reactions: