Hello everyone and welcome to the 87th CK3 Dev Diary!
Im Matthew, one of the Programmers on the CK3 team, and today I am going to talk to you about a variety of improvements and changes weve done to modding for the 1.5 patch which will be accompanying the Royal Court Expansion.
Read our Dev Diary #87: Royal Modding
Enjoy the FAQ Royal Court and read all there is to learn about our upcoming Expansion
Weve added a variety of mod support in 1.5 so Im not gonna cover everything, but I will give a few big ticket items that will let mods do a lot more fun custom things as well a few smaller fun ones. Ive also attached the output of script_docs on 1.5 at the end so modders curious about the new triggers and effects in game can get a bit of a sneak peek for the release.
The Royal Court
Of course the Royal Court itself is open to mods, it is all defined in the gfx/court_scene folder though the majority of the complex scene_settings itself is best built using the in-game editor that we are shipping with the court scene. It lets you position and change objects and switch between different settings much faster than trying to edit them all by hand.
Trust me, cause I remember the time whilst the editor was work in progress and doing changes by hand crushed my soul.
The in-game editor tool for the royal court 3d scene
I am not going to go into a huge amount of detail on the royal court modding because it is actually pretty straightforward with the editor, you position things and pick the assets you need for a configuration and then it just puts things there.
One aspect I will go into a bit more info on quickly is the character positioning, because the rest of the positioning is set within the editor but the characters are not positioned individually because of course not every court has the King of England to reference.
Instead the character positions are given a set of valid roles, and you pick a position where someone who has one of those roles may go. For example the two guards you see in the back are two positioned instances of the guard and knight role, which has a variety of rules of who it should pick.
If you have a bodyguard or champion court position appointed for example then it tries to use them as a special guard, but if you do not then it will fallback to picking any of your knights instead. You can also have some more special roles such as if you have a court jester or poet appointed then they can show up in your court too.
The script for the poet court scene role
Characters can not show up in multiple different roles and it is a greedy picking of first come first served in who is taken up, but you can write some fairly complex rules to decide who can go where as well as what animations they can choose from!
Same-Sex Marriage
Coming with 1.5 is support for same-sex marriage, not only just in mods either but as a new game rule alongside the Same-Sex relations game rule so you can use it in un-modded games too. We've updated a variety of AI logic and interactions and content to take that into account when playing.
Same-sex marriage between the Duke of Brittany and his husband
Mods are of course able to implement this into their different worlds without it having to be a game rule, it can be based on different cultures or anything in the game world at all.
This is something that were very happy to be able to put into the game and have support in the game rules for unmodded games too, it is something that a lot of the team and community wanted and we are glad it is finally going to be shipped in 1.5.
Scripted Widgets
CK3 is one of our most moddable games yet, not just in terms of the content that can be added but the system's mods can script. And our new UI system is the most open weve had in terms of what custom UIs mods can add and edit, but one issue it had was letting you add brand new things entirely and keeping compatibility nicely.
In 1.5 there is a new system called scripted widgets, what they allow for in essence is a mod to define their own brand new windows in the gui files and then add an entry into the gui/scripted_widgets folder with the name of their gui file and the main window.
For example:
gui/test_custom_widget.gui = my_first_cool_test_widget
gui/test_custom_widget.gui = my_second_cool_test_widget
Then with that simple line of script their window will appear in the game in the same way any of the windows we support in code do. Now of course there are some limitations, the windows do not have any special data context like a code one does but it can access anything that is set globally or on the local player character which covers more than enough cases normally.
A scripted widget making a new example window with a testing button
This may not sound hugely impactful, but it means that mods going forward can easily create large systems which can then more easily be compatible with other mods that add systems or if they feel brave enough even with larger Total Conversions if they do not cross over in incompatible design choices.
I am really excited to see the new UIs that mods end up making for their gameplay systems and getting to try a few different mods together. Hopefully their windows have a bit more functionality and effort put into it than my testing one
Value Breakdowns
Another bit of UI functionality that mods could not nicely mimic is getting breakdowns of their numbers in the same way we break down a value like your prestige income or how much piety its gonna cost to start that war in their own UI.
In 1.5 weve added the GetScriptValueBreakdown UI function which lets you specify the name of the script_value you want to break down and the scope context to do it on and it gives you the exact same data as if wed natively done it from code.
For example in my custom widget Ive made the button tooltip give a breakdown of the cost if I were to increase my crown authority entirely separate from the usually needed button to evaluate that cost in the realms UI.
Example of custom value break downs in custom UIs
We hope this will let mods better explain their own custom values in a more clear way, be that something like your mana in a fantasy mod or custom score for a special event chain.
Events and Localization
To make life easier for our modders and designers to work with events weve added and reworked a few debug buttons in the event window.
Now every event has these five icons in the top right corner.
The 5 debug icons in the event window
In order they let you:
- Regenerate the event contents, useful if youve changed something that cannot hot reload.
- Toggle the data system globally, this makes most everything in square brackets show exactly what you typed instead of localizing to some output, this is available via the console commands too
- Copy the event text to your clipboard
- Shows you the trigger evaluation that had to be true for you to get this event
- Debug info about the current scope context and how keys used to build the description
The character window with the localization data system disabled showing the raw function calls In a more mechanical improvement weve also added a boilerplate reduction for having events on a cooldown, instead of needing to manually check and juggle flags and variables yourself you can now specify a cooldown on the event in days/weeks/months/years as some value and it will automatically handle applying a flag that will clear after that time blocking the event from being fired on a character. Console Commands We have added a variety of new console commands in 1.5 to help make creating and testing mods a bit easier, and instead of explaining them myself I am just gonna cheat and rip their change log entries out!
- Added console command "bypass_requirements" (alias "bypass") that lets you do decisions, interactions, schemes, laws, and title creation despite the requirements not being met
- Added console command "instasiege"
- Added console command "save_every" and startup parameter "-save_every=x". These will make a save every x years, and ensure they do not get overwritten by normal autosaves
- Added console command AI.try_send_decision
- Added console command AI.try_send_interaction
- Added console command Ironman.ToggleIgnore. When ignored, saves will act as if they're not ironman, including that when you hit save it'll result in a non-ironman save. This can be toggled during gameplay
- Added console command ToggleShowAllKillers
- Added console command complete_schemes, guaranteed_scheme_success/failure, and guaranteed_scheme_secrecy_success/failure. The success/secrecy ones only affect the player
- Added console command set_date
- Added console command show_regions_in_tooltip
- Added console command toggle_keys_on_map
- Added console commands "yesmen_instant" (AKA "ymi") and "instant_responses". The yesmen button in the console can now be right-clicked to run "yesmen_instant"
The script for various culture tradition based modifiers on buildings Clocks a ticking Release day is coming soon and were very excited to see what mods are going to do with Royal Court, especially with the court scene itself which we hope in the future to see some fantastic 3D scenes especially from fantasy mods. Im gonna get back to the last minute release period scramble, thank you for reading and I hope youre looking forward to Royal Courts release and the great mods were gonna be able to see in the future too!
[ 2022-01-25 13:38:34 CET ] [ Original post ]
- CK3 Linux Binaries [148.87 M]
- CK3 Launcher Linux [99.32 M]
Crusader Kings III is the newest generation of Paradox Development Studio’s beloved medieval role-playing grand strategy game. Expand and improve your realm, whether a mighty kingdom or modest county. Use marriage, diplomacy and war to increase your power and prestige in a meticulously detailed map that stretches from Spain to India, Scandinavia to Central Africa.
But uneasy lies the head that wears a crown! Your cunning is your greatest weapon, and intelligence is the key to all successful strategy. Guard your life and the future of your dynasty, because enemies foreign and domestic envy your status. Engage in espionage, join political factions, punish heretics or use assassins to make sure your throne passes safely to the next generation.
Crusader Kings III is the medieval strategy role-playing experience that you have been waiting for.
- Shape Your Dynasty: Guide unique characters through history, choosing lifestyles best suited to their personalities and your ambitions.
- Rewrite Medieval History: Dynasties will change and adapt to changes in family and politics, swimming in a rich world of religious faith and royal pageantry.
- Build a Mighty Kingdom: Use cold steel or warm words to expand your realm; war backed by cunning, and diplomacy that unites bloodlines.
- Experience High Drama: Stranger than fiction stories leap off the screen, as characters plot against you and events push you to extremes.
- Learn as You Go: Guided advice helps newcomers and veterans navigate a rich medieval world. In-game suggestions tip you off to paths you might not have considered.
- The Usual Crusader Kings Fun: Keep a stubborn council in line, scheme against your overbearing uncle or marry rich duchesses for their land and legacy.
- OS: TBC
- Processor: TBC
- Graphics: TBC
- OS: TBC
- Processor: TBC
- Graphics: TBC
[ 6089 ]
[ 3241 ]