• 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.

Dev Diary #156 - Modding & Achievements

Hello there! We’ve got some new stuff available for you to tinker with and I’m happy to have the honor of presenting it for you! I’m Jens, the programmer behind the Barbershop upgrade and Message Settings. But first I want to talk about Domiciles, the system behind Estates & Camps.


Domiciles​

When building the feature, I made it in close collaboration with artists, designers and UX. Nobody wanted to work with another activity locale window again. So gathering the learnings and feedback, I wanted to make it as easy as possible for anyone to set the amount of building slots, their positioning or size and appearance based on triggers, all while having it updated by hot reloading in real time.

Domicile Slots​

To get some terminology out of the way, we decided on 3 different domicile building slot types:
  • Main: The building slot of your home building. It differs from the external slot in that its building is auto-constructed at start for free and is indestructible. Otherwise it’s handled just like any other external building slot. We decided on one main slot per domicile type, but there is no cap so technically you can add as many as you want.
  • External: The visual building slot you see as you open the window. It has 4 states: locked, unlocked, under construction and constructed. Clicking an unlocked slot opens the building panel where you select what building you want to construct in the slot. There’s a new character modifier domicile_external_slots_capacity_add which sum determines how many extra slots are unlocked.
  • Internal: For Estates we added internal building slots for its main building and for Camps we put them in the external buildings, but it's not enforced so any external building can host internal slots. They share the same 4 states as external slots even though it's visually presented in another way.

image_01.png

[Highlighted external building slot states of the Camp]

image_02.png

[Highlighted internal building slots of the Estate]

Domicile Types​

With Roads to Power we add Camps and Estates as two new domicile types. What domicile type to use is set per government type. Each domicile has base_external_slots which sets how many slots always are unlocked before the domicile_external_slots_capacity_add modifier is applied.

In the domicile_building_slots array you define the amount of external building slots the domicile type has. Because it’s an array you’re free to add as many or as few building slots as you like. Camps have fewer building slots than Estates so we made its artwork slightly bigger to get the zoomed in feeling. For each slot you can define if its main or external, its position and size and what image to select for the empty and under construction slot states (meaning each slot can look unique if you so wish).

image_03.png

[Database of domicile type displaying how the array of domicile building slots is defined]

The order of definition is only relevant when drawing the slots on the screen as the first items will appear behind the last items of the array. In the above example you can see we have several empty_slot_asset defined where slot appearance is selected by a trigger depending on current location. Make sure to have at least one empty_slot_asset and one construction_slot_asset per slot to cover the states.

The background of the window is selected in the same manner by defining domicile_asset that will pick the first triggered match starting from the top.

image_04.png

[Database of domicile type showing how window background is selected using triggered domicile assets]

If a domicile type uses provisions or not while moving is determined by a bool. Whether the domicile type will have a followers window and handle follower temperament will automatically be enabled if you start adding domicile_temperament_low_modifier or domicile_temperament_high_modifier.

Domicile Buildings​

image_05.png

[Example building of the domicile building database]

Some things in the above example are self explanatory but other parts are not that straightforward.
  • allowed_domicile_types: This is an array defining what domicile types this building will be available for. If not specified this building won’t show up anywhere.
  • previous_building: Is arguably the most complex as setting what building comes before this is what the upgrade tree structure will be based on. It is fully dynamic so you can make the tree as simple or as complex as you wish regardless what slot type the building is.
  • slot_type: This determines in what slot you may construct the building. Note that setting the previous building of an internal building requires its predecessor to either also be an internal building or being the base building of an external or main building track. Internal buildings cannot be base buildings so all internal buildings require a previous_building.
  • internal_slots: Defines how many internal slots this building hosts regardless if it’s an external or main building. (Please don’t add internal slots to internal buildings as that would start getting silly).
  • asset: Works just like assets for the domicile types and may be selected by triggers as well.

Not shown above we also have can_construct trigger and on_start/on_cancelled/on_complete effects.

image_06.png

[Picture of a more complex tree structure. Note you won’t find this particular building in the game]

Decision Groups​

As you might have noticed in some screenshots we have structured the decisions window into collapsible groups. What decision belongs to which collapsible group and in what sort order is fully moddable.

image_07.png

[Displaying decisions sorted into collapsible groups]

The only thing you have to do is to set decision_group_type = <key> on the decision to have it show up within a specific collapsible group. The keys are defined in the decision group types database.

image_08.png

[Displaying decisions sorted into collapsible groups]

We use gui_tags as an arbitrary string to check for within gui files changing how they should be presented and you can easily append with your own in the same manner if you want a unique look.

Message Settings​

To talk about this I also have to reveal some updates to Message Settings we will ship later with the patch.

image_09.png

[Picture of the Message Setting window in the patch version]

Message Filters​

Each message can define its own message_filter_type to be handled as. These filters are defined in a separate database.

In the filters database you can set the default behavior of messages of the filter. You can set its display type, always_show if it never can be hidden, auto_pause by default and finally the collapsible group it will belong to. All but the always_show would get overridden as a player’s starts changing their own settings.

image_10.png

[Example of the Message Setting Filter database]

Message Groups​

Works exactly like decision groups mentioned above, but without the gui_tag functionality.

Message Settings Patch Updates​

Added shortcut on each message, quickly locating their respective filter.

image_11.png

[Image of shortcut icon on a toast message to its message settings filter]

This one is from Joror: Added text field to search through your message filter list.

image_12.png

[Text search field for message filters]

And as a parting gift requested by Mindel in a previous dev diary I present to you: Custom Messages! Giving you the ability to write messages to your future self reminding you about things of importance.

image_13.png

[Screenshot displaying the Custom Message feature]




Development Tool Improvements​

Hiya, this is Joror - programmer on CK3 - I have been a modder myself before my Paradox days, and was also part of our central GSG Tools team before I joined CK3. So you can say that I have experienced our dev-tools from many different angles!

Developing or modding any grand strategy game can be an overwhelming task, given the sheer amount of systems and visualization layers that work together to create a believable world.
But we can help ourselves by improving the weapons that we have to wrangle this beast - our development tools. The modding community knows this all too well. (And often it has created better tools than the dev teams themselves. You do outdo us often, but you do outnumber us as well.)
We have improved a number of the in-game dev-tools during the development of this expansion. And as a modding-friendly game, you get to use them too! Here is a probably-not-complete overview.

Object Explorer​

A tool often used to check out what is going on in the simulated world while it is running; we tweaked its UX a bit. To access this tool you can run ‘explorer’ console command. You can also open the ‘Inspector’ part of it by ctrl-alt mouse clicking any portrait.

Improvements:
  • Made the edit input box bigger
  • Added provider name to title of dockable
  • 'Save as Default' also remembers size and position of the object browser window
  • Object Browsers 'stack' when opened on top of eachother
  • Object Inspector will now always open to the right of the Browser window instead of on top of it
  • Hitting ctrl-enter while typing in the text box will auto-apply it
  • Bugfix - Alt-Tab no longer kills half your typed text in the text box

image_14.png

[The Object Browser with more information and bigger input fields]


image_15.png

[Picture of several stacked Object Browser window, also demonstrating it remembers a Default size and position]

Script Debug Logs​

That honker of a text file called `errors.log` - it is usually filled with messages of shame from a strict and mysterious machine overlord. We have cautiously convinced it to perhaps tell us a bit more than “Error on line 0”.

Improvements:
  • Scripted effects/triggers state their actual line-number instead of the 'relative' line-number
  • Scripted effects/triggers state their full file name
  • Multi-line script errors go "last-to-first" instead of "last, first-to-last" (they're now in an order like most stack traces)
  • Script file lines mention extra context in (...) behind them - the name of the object they were in, with potentially their sub-part
  • Mean-time-to-happen script calls now actually put their script location in the logs too
  • A bit of extra indenting for visual clarity

image_15-1.png

[The same error reported in the old log style and the new]

We also now follow script-execution-chains through more layers. More verbose, but ultimately easier to track down where things went wrong. For example with events triggering other events:


image_15-2.png


[A long chain of script calls, from a ‘hold_court_decision’ initial call, all the way through a series of triggered events]

Localization Syntax Checker​

Almost all of the text of our game lives in a large amount of .yml (sort-of YAML) text files. We call these files and their entries “loc” - after “localization” - but they’re also responsible for our text-formatting, and they can call Data script functions as well. A complex database, where it is easy to make a small mistake that goes unseen. Until spotted by our talented translators, or our very observant player base.

Improvements:
  • Added a high-level localization syntax checker at game startup on all localization keys of the current language (when in debug mode)
    • Checks for extra / unterminated loc symbols `[...] (...) $...$ '...'`
    • Checks for invalid usage of Text replacement within Data functions
  • Other loc-key replacements via `$...$` can now also apply formatters via `$...|u$`
  • Escaping single quotes in `$...$` can be done via a new formatter `q` : `$...|q$` - you’ll see a bunch of our localization has been tweaked to add this.

Various improvements​

  • The map debug menu buttons work again in our release version (they still worked in our internal development builds, but modders brought this to our attention)
image_16.png

[Map debug menu - all these button now again do things, nice for streamers and modder that want to enable/disable visuals]

  • The Script Profiler (originally from Victoria 3 ) has been ported to CK3!
image_17.png

[The script profiler at work, showing us how much time was spent on various script statements]

Various AI Watch Window Changes​

One of the tools at our, and modder’s, disposal is the Watch Windows. Some of these are receiving some minor improvements.

First improvement to speak of is the AIWatch window, which contains various information regarding some of the AI logic and how the AI considers things like marriage, activities and relevant to this entry: available casus belli. One of the improvements we’ve made to the AI is that they will now consider a ruler’s military power rather than their military strength. Allow me to clarify the distinction: strength is the raw numbers a ruler has, no matter what troops they are. All military calculations up until now have been based on this. Power is a more accurate representation, in that it combines a regiment’s combined damage and toughness and multiplies that with the strength of the regiment. The short of it is: the AI now knows that levies are much weaker than MAAs and Knights when both declaring wars and picking battles.

To make it easier for ourselves when investigating how the AI picks available casus belli, we are exposing the AI’s power calculation, and the power they estimate other rulers to have. It is important to note that this calculation is affected by the ruler’s personality when targeting administrative realms, such that a craven ruler will overestimate a target’s power, while a bold ruler will underestimate a target’s power; a craven ruler will assume all governors operate at peak efficiency, while a bold ruler will assume them all to be useless administrators barely fit for office. These calculations can now be seen in the AIWatch Window in the Casus Belli section.

image_18.png

[AIWatch Window with military power in the CB tab]

Furthermore, while in debug mode, the military strength tooltip in the character window will also show an entry for the ruler’s military power.

Next is an improvement to the AI War Coordinator Watch Window. While this is not a window that helps modders too much, as the items shown within are more relevant to us who have access to the source code, it can be of worth for those who modify the strength of levies and knights.

image_19.png

[AI War Coordinator Watch Window]

While rarely relevant for modders, the ai war coordinator watch window can be of value when modders change the calculus of war by modifying the strength of levies, men at arms and knights, to see if their tweaks have the desired effect on strength on the sides of war.

The military power information is also available in the character window when in debug mode.

image_20.png

[Character Window showing “Our Military Strength” tooltip with debug mode enabled]

Warfare Modding​

Retiring some of !warfaremodding​

New modders often ask the question: can I mod armies and regiments? For the longest time we have not allowed any sort of warfare modding to the point where our modding community has had this little command on their Discord server, first proposed in 2022.

image_21.png

[CK3 Mod Co-op !warfaremodding command proposal and first use]

Now we retire some of these points. We are adding a whole suite of effects and triggers that affects regiments. Yes, we are making regiments a scope and various ways to access them. You’ll now be able to create, destroy, change size of, and add troops to regiments from script.

Let’s look at the refill_maa_with_provisions_effect as an example where one of them is used.

image_22.png

[Warfare modding example with change_maa_troops_count]

Another thing we’re adding with Roads to Power is dynamically changing commanders in battles. While not directly moddable, this does mean that one can add temporary modifiers to commanders to swap them around.

Starting wars never was easier!​


The ‘start_war’ script effect has some downsides because you have to specify exactly which war you want to start, and you might not know which Casus Belli and targets might be available to a character. Troublesome. You will have to wait for the general AI war background process to kick off a war you want to start.
So to give our script a bit more power, we have added a new ‘complex’ effect called ‘ai_start_best_war’, which can be used only for AI characters. It will go through all the valid wars a character can start at this moment, and gives you the opportunity to ‘select’ them via the ‘is_valid’ trigger.

Out of all the wars selected this way, the effect will start the one with the highest AI score. (as determined by the regular AI scoring mechanism for wars, which is a combination of a code-based score and script-based ‘ai_score’ calculation on Casus Belli)

The outcome of the effect can be further acted on by its two sub-effects: ‘on_success’ and ‘on_failure’.

It is a key component of how we made characters with our new Conqueror trait extra aggressive!

image_23.png

Music Player​

The contents of the music player are moddable. For those who're already modding music into the game, there's just a few more steps you have to do in order to have the songs show in the music player.

We add the Music tracks we wish to put into the Music Player into categories. To do this they must be implemented with the following files structure:

image_24.png

[Music Player Modding directories]

The music.txt files contain information on the tracks themselves, and in order to have them localized they all must have a name = loc_key field. Example:

image_25.png

[music.txt entry example for music player modding]

The music_category.txt files will then contain information on the categories and tracks contained within:

image_26.png

[music_category.txt example for music player modding]

It is important to note that the id field in these categories must be unique. Finally, here’s where you can add illustrations for the music player. Using the above category as an example:

image_27.png

[Directory structure to add illustration for music player]

Of course all the audio banks and all that must also be added into it.

Flavourization​

Some changes are coming to the Flavourization system. For the uninitiated, this is what separates the Petty-King from the Duke, the Emperor from Basileus, and the Divine Empress from Empress-Bishop. The big thing of note from before is that we’re encapsulating previous true/false flags in a container to collect them all. This is to improve legibility when new rules are added. Let’s look at the full structure of supported members.

image_28.png

[Complete structure of the flavourization, minus the detailing documentation]

This entire structure was undocumented previously, so all modders had to go on was how we had previously used it. An up to date .info file on the structures will be coming with Roads to Power so you can make your own, flavourful modifications to titles, names and the like. As of Roads to Power, naming conventions of characters with their titles (Emperor Chad to Holy Emperor Chad), title tier names (duchy to petty-kingdom) and domicile names (Estate to Family Holding) are supported.

As an example:

image_29.png

[Example flavourization entry for Badass Queen]

An interesting thing we discovered while adding features to the Flavourization system was: we already supported looking for character flags. It was just never documented. Our designers were enthusiastic about this revelation. Our programmers were… not so enthusiastic about the designer’s enthusiasm:

image_30.png

[Slack thread on Flavourization changes and discoveries]

Fair warning to our modders: the Flavourization system can get very expensive to do in terms of execution, so as much as I know better than to say this but – use it responsibly.



Achievements​

Hello! Rageair here with a preview of the Achievements coming with Roads to Power! I’ll start off with the easy ones, getting harder as we go down the list…

image_31.png

As mentioned in a previous Dev Diary we have Historical Characters such as Dante or Fibonacci spawning across the map. If you get one of them to appear in your realm while owning Roads to Power, you will have the option to set out on an adventure as them!

image_32.png

Take care of the people in your camp and this one should come rather easily! It’s not entirely trivial to get people to join your camp in the first place, though…

image_33.png

A callback to an old way to play the game, harkening back to the CK2 days (there were several YouTube series with this gimmick!) - switching which character you played every time you died. Now this is supported by the game, making it easier than ever!

image_34.png

Now we’re getting into the intermediate difficulty achievements. This one can happen naturally, but a fun thing to try is by playing Harold in the 1066 invasion of England, and then returning to reclaim the crown from William!

image_34-1.png

Quite straightforward - create a large realm, then adopt the new government form!

image_35.png

Deceptively hard seeing as there are a lot of buildings to construct in your Estate!

image_36.png

Buddy up with the emperor and then smite your enemies with his permission! You will probably find a lot of enemies while playing in Byzantium, so you should be motivated to pursue this.

image_37.png

If you’re really chummy with the emperor you might be named co-emperor, and as a co-emperor you can demand a larger share of the realm to rule as your own…

image_38.png

This achievement is based on history; the Palaiologos dynasty became the longest-ruling dynasty in Byzantine history after having served faithfully for a long time.

image_39.png

A fun challenge! Save up a lot of gold in order to weasel your way into becoming a noble family (hint: this is easier to do if you adopt Byzantium's State Faith), and then use your influence to claim the throne, good luck!

image_40.png

Time for the harder achievements - if you follow the story of the historical founder of the assassins it will culminate with the dissolution of an empire (historically the seljuks, but you can take him anywhere!)

image_41.png

Playing as El Cid you will have plenty of choice; this achievement is unlocked by following his historical path.

image_42.png

Saladin starts out as a Conqueror, so this is a tall feat to pull off. You have a few years to prepare for his invasion as he tends to go for central arabia before holy warring Jerusalem.

image_43.png

If it’s not broken, don’t fix it! Having a turkic-dominated islamic administrative empire is a fun challenge to pursue, especially seeing how Byzantium still can pack quite a punch despite having lost a lot of territories to you in the 1178 bookmark.

image_44.png

A natural continuation of the venerable ‘Rags to Riches’ achievement from the base game!

image_45.png

Georgia had plans on holy warring for these territories, but in history this plan didn’t come to fruition - an interesting and plausible alternative history scenario to pursue!

image_46.png

You have to work hard in climbing the political ladder to achieve the position of dominant family! Try putting as many family members on important positions as you can!

image_47.png

In 1178 Byzantium is at a low point, making it a fun challenge to not only survive, but thrive!

image_48.png

Perfect achievement to pursue in combination with Chaos is a Ladder.

image_49.png

If you wish to pursue this I recommend the 1178 bookmark, as it’s very likely for this to happen around that time.



That's all we have for this week; come back next Tuesday as we dive into the details behind the new Scheme rework coming in Roads to Power!
 
  • 85Like
  • 43Love
  • 9
  • 2
Reactions:
also since you added collapsible categories, i would like it if i could see all decisions in the game even those unavailable to me under a category that shows all invalid decisions. Just so i could see their requirements without having to google what it takes for them to show up under the decisions tab
 
  • 10Like
Reactions:
and one last thing since its related to notification settings, will there ever be a way to track different categories of characters? The pinned list exists but its hard to differentiate when you are tracking dozens of foreign heirs with claims, congenital traits you are trying to breed into your dynasty and the usual character you need to kill. Would be nice if we could have categories for different kind of pinned lists too.
 
  • 6Like
Reactions:
Is it possible for flavourisation to be influenced by cultural language or court language? I always found it odd that e.g. with the Community Title Project mod which adds historically accurate title & territory name variations in historical languages, the names always track the cultural heritage rather than the cultural language or court language - but I had assumed this was hardcoded.
Already possible through Custom Loc, however more performance hit
 
  • 2
  • 1Like
Reactions:
and one last thing since its related to notification settings, will there ever be a way to track different categories of characters? The pinned list exists but its hard to differentiate when you are tracking dozens of foreign heirs with claims, congenital traits you are trying to breed into your dynasty and the usual character you need to kill. Would be nice if we could have categories for different kind of pinned lists too.
Another step towards solving this problem, with more general application, would be to allow us to add free-text labels to characters pinned to the Outliner. So next to the name you could write "My future bride" or "Potential Steward" or whatever. This would help to avoid the situation where you load the game after days, weeks, and months away and have no idea who the several dozen Ahmeds and Zoës in the Outliner are.

I think this feature would be relatively easy (cheap) to code. One difficulty is that the Outliner UI is already very densely packed, but you only have to made space for a single icon, since the label line would only be added when actually used.

That by itself would considerably mitigate your problem. It doesn't completely solve it though. To do that you would have to make the text label searchable, perhaps activated through a special toggle on the Character Finder. But I think that would be no more difficult that adding categories to the character part of the Outliner and would offer considerably more flexibility.
And some thoughts on scripting in Paradox games

I wish I could write something like this

JavaScript:
var mother_in_law = event.scope.self.mother;
var spouse = event.scope.spouse;
if (spouse.faith == Faith.find("catholic")) {
  spouse.piety += 100 + Math.sqrt(mother_in_law.prestige);
}

Your current script language evolves chaotically, is too verbose, is hard to parse using traditional parsers used for big languages (C++, JavaScript, Rust) and, IMO, is the main source of bugs in the game:
common/genes/00_clothes.txt file had two missing } for ages! Also I saw somewhere a value like this: 10'.

I even tried to parse all 20000+ game files and create transpiler from Typescript to Paradox language since Typescript has first-class support in all major code editors.

You may say that current language is easy for non-programmers but I think that if you can write this
Perl:
if = {
  limit = {
    $TARGET$.prestige > 5000
  }
  $TARGET$ = {
    add_piety = -1000
  }
}
then you can write this
JavaScript:
if (target.prestige > 5000) {
  target.piety -= 1000
}
[/SPOILER]
Firstly, I think it's fair to say that the PDS scripting language is imperfect and you are quite right that it "evolves chaotically". If someone had sat down and designed it with a blank sheet of paper, then it wouldn't look exactly the same as what we have. And I agree that from the perspective of a newbie, the trigger/effect syntax is no easier to learn than an if/{} syntax. And there's no doubt that there are tens of millions of people who have already encountered if/{} in the C family of programming languages and elsewhere, so fewer people would be total beginners.

However, chaotic evolution is not a totally flawed approach.... among other things it led to Henrik Fåhraeus, and by extension Crusader Kings!

More seriously, the fact that there are typos in the code doesn't really mean it's impossible to use, it just means some of the staff have been sloppy. There's a script validator for two of the biggest IDEs so PDS staff should be using it (and just as importantly, contributing patches to keep it up to date).

And I think you are seriously underestimating the switching costs of replacing the language. The language may seem odd if you are coming from more traditional programming languages, just as Chinese seems odd if you are used to Germanic languages like English. The solution is not to advocate that China switches to English(!), even though English is a very widely spoken language. The PDS scripting language now has a large community of modders and PDS staff have decades of experience using it. The bar for throwing all that away is very high. Replacing the script in existing games would probably mean they released no new DLC for a year or more; moving new games to a different script might delay them for many months as the content designers learned the new language. That's the kind of decision that can destroy a company. Don't take my word for it; read Joel Spolsky's classic analysis of how Netscape lost the browser wars this way (and it's a mistake that Mozilla have continued to make, because they have now replaced their extension scripting standards a couple of times, which is why the Chrome family of browsers has a much better ecosystem for extensions).

BTW, you will probably enjoy this Reddit post which discusses a proposal to replace PDS scripting language with Lua and contains comments by Podcat (Dan Lind, Game Director of HoI4 and a currently-undisclosed GSG) explaining why PDS did not go down that road.

NOMADS!??
I just assumed the dev was a brony.... (or pegasister, a word I have just learned and am not entirely convinced is genuine).
 
Last edited:
  • 6
  • 1
Reactions:
Joan of Arc achievement? or when Wandering Nobles comes out throw in a story event of a passing reference similar to her. That's if you're not going to add Joan to the game for being born too late.
 
  • 1
  • 1Like
  • 1Love
Reactions:
Apologies if these have been asked already, but:
  1. Is it possible for flavourisation to be influenced by cultural language or court language? I always found it odd that e.g. with the Community Title Project mod which adds historically accurate title & territory name variations in historical languages, the names always track the cultural heritage rather than the cultural language or court language - but I had assumed this was hardcoded.
  2. For mods, is it possible for one character to have multiple different types of modded domicile simultaneously?
For your second question: Every character may only have 0 or 1 domicile, multiple is not possible.

A couple of questions about modding Domiciles:
  1. Are Domiciles always linked to government, or is it just the two default ones? If not, can we set up, say, a trait or modifier that gives access to one?
  2. Is it possible for the same character to own multiple Domiciles?
  • You can max have 1 Domicile per character.
  • Domiciles are added or removed as you switch government type.
On each domicile type you may set allowed_for_character with triggers (which could be traits or modifiers), like now we just don't hand out Estates to anyone of the Administrative Government:

estate = {
allowed_for_character = {
any_held_title = {
is_noble_family_title = yes
}
}
It's an interesting idea to add or remove a domicile without changing government type, but as there was no need for that functionality in this expansion it was never implemented.
 
  • 12
  • 1Like
Reactions:
and one last thing since its related to notification settings, will there ever be a way to track different categories of characters? The pinned list exists but its hard to differentiate when you are tracking dozens of foreign heirs with claims, congenital traits you are trying to breed into your dynasty and the usual character you need to kill. Would be nice if we could have categories for different kind of pinned lists too.
Agreed. I'll get the notice that someone of interest has died and I look at them and wonder why the F* they are/were and why I had them pinned. Mostly I pin the rulers of lands I want to watch or keep a record of. Seriously, one of my spreadsheets is the rulers of various lands and important titles that gets updated as one dies. One thing I'd love to see is additions to the notifications for these rulers. When they marry, when they go to war, when they get forced to abdicate.
 
  • 3
  • 1Like
Reactions:
Should result in fewer suicidal war declarations.
Probably. Of course, it won't stop the Bold characters from doing dumb things :D

For clarity's sake. When you say is in the system now, do you mean already today or after Roads to Power goes live?
Roads to Power.

If I correctly understand the dev response, they were saying that they are not showing it to the player because it is just a guesstimation (and then proceed to explain why it is a guesstimation)

So rather than give the players a number (which many players would falsely take as an accurate representation of power), they still leave it up to the player to make their own guesstimation (which very well might be more accurate than the one the AI is using)
This is the way!

This might be the sort of change to AI behavior and such that you might want to draw a wee bit of attention to and give practical context for, because depending on how it feels in implementation it could come across like a sock of rocks to the face for people unprepared and unaware of something hidden in a normally niche dev diary. Military strength has been the determinative factor in the faction and war declaration thresholds for so long that this could greatly destabilize people's norms for what is / is not a stable realm.

That's not bad in and of itself- I'd say it's probably good overall- but it could be a surprise, and a nasty one, at a time people would likely attribute it to other factors foremost in their mind on DLC day. Like, say, the Title MAA system.

Maybe pass it on to some CK influencers so they can play with it and give pre-release feedback / sound it to the audience if it is a big deal. Because if it is, this could easily be a major friction point that complicates the reception feedback of the DLC.
I didn't touch the faction logic with this, so they might still behave the same as before. Might be something to look into later, but at the same time it might lead to factions being too scared.

We have a closed beta program and the feedback given by them has been positive, at least as far as the warfare is concerned.

I didn't know we could mod the strength of levies.
There is a define for it, so it doesn't do too much. It merely sets the base power and toughness per levy.
 
  • 10
Reactions:
View attachment 1185813
This achievement is based on history; the Palaiologos dynasty became the longest-ruling dynasty in Byzantine history after having served faithfully for a long time.
While I understand the reasoning for this icon somewhat (Michael VIII Palaiologos blinded his former emperor, John IV, to secure power), I think not putting the classic 4 betas here really is a missed opportunity b/c
1) It has been consistently the symbol for the ERE for Paradox titles;
2) It was introduced by the Palaiologos.
It would be cool if title CoAs could change if certain historical dynasties took power, perhaps the modding changes in this update could make this possible.
1726048741349.png
Featured: The ERE CoA for EU4.
 
  • 4Like
  • 2
  • 1Love
Reactions:
Would it be possible to mod in having landless characters as vassals to other characters, contributing taxes and levies? So for instance in a small realm you might have "landless" characters to represent the nobles who would not control territory as large as a county but would still be politically significant at the scale of the kingdom.
 
  • 2Like
Reactions:
Since we will get a map table model for the Byzantines, is there any plan in going back and doing the same for the other regional DLCs?

Iberia, Persia and Scandinavia?

I think it would be cool, even if it was in a small separate pack like the Northern African one.

Thank you guys for the hard work! :)
This + new Royal Courts for other regional DLCs would be so cool.
 
  • 4Like
  • 3
  • 1Love
Reactions:
I love the new quality of life ai fixes but im kinda bummed there's still really no way to influence ai allies to either follow me directly or go seige down provinces. Right now the ai just does whatever it wants and bounces around either not supporting me or dropping nearly complete seiges to follow me for no reason.
 
  • 1
Reactions:
No "Robin Hood" achievement? You probably thought about making it. Or do you not want to make achievements based on criminal actions?
I think something like this is better for Wandering Nobles which is all about finding good story events or at least part of it anyway.

A few stories I'd like to see ( these are not characters to be added to the game, but stories that historically were told.)

Robinhood
Pied Piper of Hamelin
Joan of Arc (Born too late to be in the game, so maybe a story event?)
Little Red Riding Hood
Baba Yaga
Sindbad
Ail Baba

and story telling is not complete with out hearing of the heroes of the past, like Cyrus or Alexander.
 
Last edited:
  • 5Like
  • 4
Reactions:
I think something like this is better for Wandering Nobles which is all about finding good story events or at least part of it anyway.

A few stories i'd like to see

Robinhood
Pied Piper of Hamelin
Joan of Arc
Little Red Riding Hood
Baba Yaga
Sindbad
Ail Baba

and story telling is not complete with out hearing of the heroes of the past, like Cyrus or Alexander.
I get what you're saying, but I think we should draw the line at adding outright fantasy characters like Ali Baba or Little Red Riding Hood.

And before anyone brings this up, yes I am aware that some of the characters like Ragnar's sons are a little bit historically "fuzzy" so to speak. But I do think there's a valid distinction to be made between someone who did exist in some form but with a questionable biography vs. a completely fictional entity.
 
  • 2
Reactions:
Is it possible to modding domicile to host in province, rather than a character?
For example) when press a certain button at county window, domicile window pops up which representing buildings in that county.

I was thinking a personal modding project related about this long before RtP announced
 
Last edited:
  • 3Like
Reactions:
I get what you're saying, but I think we should draw the line at adding outright fantasy characters like Ali Baba or Little Red Riding Hood.

And before anyone brings this up, yes I am aware that some of the characters like Ragnar's sons are a little bit historically "fuzzy" so to speak. But I do think there's a valid distinction to be made between someone who did exist in some form but with a questionable biography vs. a completely fictional entity.
I also don't think those characters should be added in the game. It's just an event story, no characters added. And while the characters are not part of history the stories themselves are.

There is a ghost event i dont know if it's from a mod or the game itself, but you know ghosts are not in the game as characters it's a story event.

Wandering Nobles does talk about exploring the world and finding good stories to tell. I'd like to think these are just story events and not characters in the game that we will be finding, maybe i'm wrong about that. I think real stories that were being told in the timeframe of the game would be good to fill out some events. some of those story are what i talked about a few posts above.
 
Last edited:
  • 2
  • 1Like
Reactions:
Speaking of Custom Messages, will I be able to get Messages whenever a Family Member in my Court comes of age? Or, failing that, whenever a child living in my Court comes of Age?
Coming of age is unfortunately not a message, it's an event. Events are an entirely different beast and even if we wanted to add them to Message Settings it was not an easy fit as they often have long text, multiple options to choose between and additional options in viewing characters. For Message Settings we wanted you to seamlessly be able to switch between the different display types, and for Events to be included, we would need to auto select the first option for you, re-write short descriptions of every event to fit the text in a toast or feed without a scrollbar, and the conclusion was just no. But as a work around, you can now use the custom messages and have it remind you when they will come of age.
 
  • 9
Reactions: