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

CK3 Dev Diary #87: Royal Modding

Hello everyone and welcome to the 87th CK3 Dev Diary!

I’m 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 we’ve done to modding for the 1.5 patch which will be accompanying the Royal Court Expansion.

We’ve added a variety of mod support in 1.5 so I’m 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. I’ve 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 we’re 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 we’ve 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 it’s gonna cost to start that war in their own UI.
In 1.5 we’ve 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 we’d natively done it from code.

For example in my custom widget I’ve 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 we’ve 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 you’ve 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
We’ve found that having easy access to these makes it a lot simpler to debug events and iterate on content.

Though do be warned that toggling off the data system can give you some truly cursed looking windows since now instead of seeing the number 4 you see the joyous underlying constructs such as this monstrosity of a window:
The character window with the localization data system disabled showing the raw function calls

In a more mechanical improvement we’ve 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 bypass and save_every commands have been especially helpful in setting up scenarios to test scripts and make sure it works exactly as you had intended in your mods. As are the forcing the AI to try out an interaction instead of waiting for them to do it of their own free will.

Modifiers Everywhere​

In 1.5 we’ve made some improvements to modifiers so if you use an invalid modifier type somewhere it will error and let you know its not going to work.

Which has been very useful as in 1.5 we’ve greatly expanded upon modifier support in buildings, now buildings can not only apply modifiers to you in general but they can also apply specific modifiers based on culture parameters which are applied by traditions. These can be used in the modifiers affecting the character, province, county and duchy_capital_county modifiers.

In addition there is a province_terrain_modifier which can apply a modifier based optionally on: terrain type, being coastal, being by a river, and by culture parameter. So traditions can really matter in your mods and let cultures play in vastly different ways.
The script for various culture tradition based modifiers on buildings

Clock’s a ticking​

Release day is coming soon and we’re 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.

I’m gonna get back to the last minute release period scramble, thank you for reading and I hope you’re looking forward to Royal Court’s release and the great mods we’re gonna be able to see in the future too!
 

Attachments

  • effects.log
    288,5 KB · Views: 0
  • event_targets.log
    22,2 KB · Views: 0
  • modifiers.log
    58,9 KB · Views: 0
  • event_scopes.log
    302 bytes · Views: 0
  • on_actions.log
    35,7 KB · Views: 0
  • triggers.log
    195,8 KB · Views: 0
  • 104Like
  • 60Love
  • 27
  • 5Haha
  • 5
  • 1
Reactions:
Umm because it isn't core to the game. Mod support has always been core to paradox games.
And modders want to be able to have gay marriage in their mods, so they made the necessary changes to allow mods to have it.

And while they were there, they added a game rule (which disables achievements when set to "yes") so that you don't need to have a mod to turn it on.
 
  • 12
  • 2
Reactions:
And modders want to be able to have gay marriage in their mods, so they made the necessary changes to allow mods to have it.

And while they were there, they added a game rule (which disables achievements when set to "yes") so that you don't need to have a mod to turn it on.
And he was already complaining back when the feature was going the be modding-only lol. Or even when it was only people asking for it to be mod only.

If enough people want it, then of course they should do it. It isn't like I'm going to be upset if they add it. I wouldn't ever use the feature, unless it was included in one of the major mods like CK2++ or HIP or GoT.

I like how a lot of people wanted it, and you say you wouldn't be upset if they get it... except when they do you get so upset that one of your posts had to be moderated.
 
  • 5Haha
  • 4
  • 1
Reactions:
Moving on to all the other awesome t hings in this post, I'm liking the look of Scripted Widgets, even though I have no mod plans of my own. UI customization for the win!
 
  • 3
  • 1Love
Reactions:
Umm because it isn't core to the game. Mod support has always been core to paradox games.

If this dev diary would of been about the adding of glitterhoof, I would of said the same thing.

I would prefer they add things that are core to the game.

Anyway, I've made my point. Have a good day; we can just agree to disagree.
HOW DARE YOU. Glitterhoof is core to the game!

Here is our beloved Glitterhoof as Pope whom sadly died from horsing around. download (2).jpg
" " being crowned default Grand Tournament Champion since you can't defeat a horse in jousting you fools. download.jpg
And finally, there is Glitterhoof getting it on spreading its horse culture. download (1).jpg
 
  • 8Haha
  • 5Love
  • 1
Reactions:
Umm because it isn't core to the game. Mod support has always been core to paradox games.

If this dev diary would of been about the adding of glitterhoof, I would of said the same thing.

I would prefer they add things that are core to the game.

Anyway, I've made my point. Have a good day; we can just agree to disagree.
this (gay marriages) was one of the most requested modding features. so by your logic core to the game.
 
  • 9
  • 2
Reactions:
Sorry it took a while for me to reply, your post is longer so I had to set aside some time so I waited for friday.

And out of everything you listed the specific comparisons blackninja actually used were the royal court scene that you yourself just admitted is directly related to the DLC and the widgets, which as I argued is at least tangentially related to the type of UI mechanics already used in the DLC.

Except there were also the console commands, error logging and the widgets that might not be necessary to have the DLC for them so it's not DLC related. The DLC might use these themselves but a modder or player without the DLC can still benefit from it; this fits more as a 1.5 free patch content than DLC content. A user without RC very likely will not use the editor, that seems more like DLC content to me.

I already mentioned the Azure patch dev diary myself so there's no need for you to act as if I were somehow unaware of it.

Yet you did not address the negativity when it was only a modding feature. That post is also an example to the previous quote above that these were modding improvements not related to the RC DLC and yet they were not singled out. BlackNinja's post context takes into mind months of what happened on this forum as well, not just a simple response to a particular user.

I outright quoted the relevant part of their post in the text of my paragraph you're replying here and it explicitly brought up lack of complaints about changes brought in the upcoming DLC going beyond the scope of this thread. So you should direct the remark about there being no need for off-topicness at them.

And yet there were people opposed to it that argued in this thread about historicity before his post like Prometheus_1 did on page 2 (and failed to compare to other ahistorical content from the game or from RC), and more recently other users did after his post. So the historicity of features is relevant to the dev-diary and not off-topic if people are using it to argue against one of the features of said dev-diary.

If you think people are ignoring not only other ahistorical content but these specific examples just because they weren't complained about in a pre-release dev diary, you're not really paying much attention to the forums. Things like incest, nudity or cannibalism are common targets of criticism about CK3 being ahistorical or "pandering to memers", while what people arguing that consider more important content is being ignored.

Also, quoting pre-release dev diary is just apples to oranges comparison here in the first place. For two reasons. First, people were much more optimistic then and willing to give Paradox the benefit of the doubt. Now with Royal Court development having a crawling pace and other issues, the overall attitude on the forum turned more sour from what I've observed. Secondly, during the development of the base game things were still up in the air one way or another. But came release, (lack of) gay marriage was something that was already hard-coded into the game, which then had to be undone to make it work. Which by Paradox's own admission, required enough work to do that it couldn't even been done in a major patch like 1.4. Not exactly the case with cannibals, is it now?

Ahistorical and "memey" content has been present since CK2 (can't say about CK1 as I never played it) and it has become almost a staple of the series; I do not see such opposition to this as you claim. Especially since cannibalism religion (not the other two you mentioned) and a same-sex marriage feature would require player intervention to become commonplace in the game world, so people should complain about these even less. As was clear in this dev diary (or when it was a modding feature) same-sex marriage is not enabled by default and yet people keep complaining about its historicity but rarely that of a cannibalism religion (or a religion with the most "memey" tenets possible).

For the second part, about the historicity argument his complaints are still valid because people are not raising concerns about historicity of RC content even if the community is as soured up as you say. Comparing the pre-release dev-diary to RC we can see in both cases people are ignoring historicity concerns except when same-sex marriage is mentioned (this even happened on that pre-release dev-diary), which is also something he mentioned on his post.

For the last two sentences about development time, (he complained of this in his post as well, last paragraph), how common are the complaints about development time of ahistorical features in RC? And for the technical aspects specifically only they can respond since we don't know the internal mechanics of the game or what exactly they changed.

As for cannibalism, there is a trait, events, crime type, a secret for it, a hook for it, character opinion, execution method, stress impact and events, and maybe more. While these are expected implementations for such a specific trait, all these have to be accounted for when a religion has it as a tenet and great virtue so it might require reasonable amount of work to implement. How it compares to same-sex marriage, only Paradox can say, but BlackNinja seemed to mention it was not that much work compared to other things. If you want to know if it was either too complicated or there was some other reason why it was not in patch 1.4, only they can clarify it, if they wish.

And the other half of this tangent of yours is just a false. I've seen people call the whole culture rework as something that doesn't give enough gameplay for how large it is, as in their eyes you'll only interact with it just a few times during a campaign and then forget about (and I've seen that complaint numerous times). While calling culture-changing parts of it in particular more "meme content". Which kinda falls squarely under the umbrella of wasted development time and ahistorical content. And the court itself has not only been called a waste of development time, it's been outright accused of being the culprit behind the very 8 month development time you brought up.

For people complaining about feature depth is more of a implementation criticism; I was only responding to historicity and development time. Either way for the culture-change feature in particular, as is understandable now from the previous dev-diaries, you can use it either historically or ahistorically so it being deep or not or how often it'll be used makes no difference for historicity. Same-sex marriage can only be used ahistorically by most accounts here, yet several other things in the game can also; a cannibalism kingdom even if with a lot of depth would not be historical.

But almost nowhere in these threads where same-sex marriage comes up have I seen "this RC dlc is so ahistorical you can make whatever crazy culture, get the hairsack of the pope as an artifact, have a nudist court, and also same-sex marriage lol". It's more like:

"GRRRRR same-sex marriage AHISTORICAL, why have ahistorical things in my game??? These STUPID dev diaries that ONLY talk about same-sex marriages and NO OTHER FEATURES that took time to develop!!!! Gonna make my HISTORICAL nudistic incestual CANNIBAL KINGDOM just to MURDER ALL who have same-sex accepted!!!!!".

Still, from what I saw at least the culture-changing feature seems to be one of the most anticipated features of RC. As an example (anecdotal sure, but there are plenty around the forum), even a very historically focused and strict player like Torredebelem we can see in his first post on this thread he is looking forward to it.

If people are indeed complaining that much about the development time of RC, then it's indeed good to see some consistency. But even still there seems to be a difference in the level of opposition to the development time of what is a minor feature (even when it was just a modding improvement) compared to what is pretty much the main feature of the RC DLC.

Yeah, no, you made that "context" up. Such remark is nowhere to be found in either blackninja's comment (which simply talks about gay marriage being singled out for complaints, period) nor the post they were replying to. Instead that post literally called the complaint at hand "an important point", that's simply worded in an "uncouth" manner.

I made it up? Let me quote his last two paragraphs here and explain what I understood:

And I'm gonna be incredibly blunt here, nobody is complaining we added scripted widgets as mod support. Or made a court scene editor that mods can use too. Or any of the other bits of mod support we added. Or about any other of the myriad of reworks and changes coming in 1.5 and Royal Court of which plenty enable incredibly ahistorical behaviour on top of the options already provided.

But gay marriage gets singled out for complaints? Lets not pretend that is for any remotely genuine reason or concern in where we spend our time developing the game, because we all know it isn't.

I said: "The context of his post is not that people "only complain about same-sex marriage", it's that people keep complaining about it with double standards"

He says in that first paragraph that nobody is complaining about the historicity and development time of ahistorical features of RC besides same-sex marriage. And on the last he says that same-sex marriage is singled out (singled out as in argued against with the same arguments). On the last sentence he frustratedly doubts that these are the real reasonings for the opposition because he thinks they have double standards.

To me at least, that is the context, not just that "which simply talks about gay marriage being singled out for complaints, period". If you understood that differently, then I guess you should just ask him more clarification or wait for him to respond directly if he wants to. I think at this point we are just getting in circles; I don't even know if I have anything else relevant to add.
 
  • 6
  • 3
  • 1Like
Reactions:
also you can easily inherit entire kingdoms or empires for your children as a count or duke simply by abusing the ai's terrible marriage acceptance behaviour
lets say there is an emperor, he has a son, who is heir to the empire, and that son has a son.
The emperor does not let you matrilineally marry his son because that is his primary heir and doing so will just kick his dynasty off the throne.
But he will let you marry the 2nd in line to the throne, his grandson because he is not directly the heir and so the AI does not factor this is in, which it did within ck2, so within 100 years your dynasty would be the powerhouse by doing nothing but marrying someones grandson because they're too stupid to check the line of succession
 
Last edited by a moderator:
  • 4
  • 1
Reactions:
my question wasn't "why is it being added" my question was "why is it being added when the game is so barebones and both gameplay and rp are repetitive and unenjoyable after a few playthroughs" Grommile.
Even that has been answered—by the dev who wrote this diary. Simply put, because it was a much-requested feature that they were able to put in at this time. Quoting from post#114 again,
reworking some code and script to enable gay marriage is infinitely less time than any of the reworks you proposed.
To reiterate his final point in that post, this dev diary announced the following features:
  • in-game court editor
  • same-sex marriage
  • scripted widgets
  • value breakdowns
  • event and localization debug buttons
  • new console commands
  • modifiers everywhere
Why, out of these seven features, do you single out only one? The one that’s been asked for the most, as far as I know?

Edit: one that adds rp possibilities, too!

I’ll add here, that several posters have implied that only LGBQT+ players want or will use this feature. I am not LGBTQ+, but I will happily rp with this; I’m looking forwards to it. I’m expecting it to make for some interesting succession scenarios and stories!
 
Last edited:
  • 11
  • 2Like
  • 1
Reactions:
I'm relatively new to Paradox games. Stellaris got me hooked. I'm obsessed.

Crusader King III has been on my Wishlist for weeks. Thanks to the Steam sale, I finally found the budget to buy the game yesterday. And I'm loving it!
I played for almost eight hours straight.

While playing, I was hoping that my bisexual Iberian King can seduce one of those Viking Warlords of the north. I was disappointed that I couldn't.

Then I saw this Dev Diary. Let me tell you: I. Cannot. Wait.

I'm excited for King Arnau Miro Ponc de Minerva to rule the land and sea with his Viking, Irish, and Byzantine husbands. :D
 
  • 5Like
  • 1Love
  • 1
Reactions:
While playing, I was hoping that my bisexual Iberian King can seduce one of those Viking Warlords of the north. I was disappointed that I couldn't.
It's hard, but if you can find a bisexual or gay Viking Warlord, the world is your oyster. :p
 
  • 3Haha
Reactions:
a lot of really depressing posts in this thread so i just wanted to mention i think the same sex marriage implementation owns. For a game where part of the fun of it is shaping medieval society according to your own modern ideals (or contrary to them, or even completely arbitrarily), this is a big deal for making more varied fantasies possible.
 
  • 8
  • 1
Reactions:
I think the reason why same sex marriage is debated hotly in this diary is just a misunderstanding between devs and customers. As far I remember correctly is that one patch made same sex marriages impossible to mod. This made some angry even accusing paradox to be homophobic. Now they braught that back as a game rule. This made some angry again because of the delay, and that game rule alone appears so isolated and random they couldn't understand why devs are bringing that up so suddenly.
 
  • 2
Reactions:
Wow, this thread does not disappoint in a lot of sad ways...
I think it's awesome that the Devs implemented the same-sex marriage in the way the diary describes, way to go <3

I think the reason why same sex marriage is debated hotly in this diary is just a misunderstanding between devs and customers. As far I remember correctly is that one patch made same sex marriages impossible to mod. This made some angry even accusing paradox to be homophobic. Now they braught that back as a game rule. This made some angry again because of the delay, and that game rule alone appears so isolated and random they couldn't understand why devs are bringing that up so suddenly.
You are in fact not remembering correctly. A patch broke some mods regarding same-sex concubines. There is no misunderstanding. Same-sex marriage mods were never possible in CK3 because of the way the game was coded. These changes have been hugely requested by the community and there is a very long thread about it here on the forum. Eventually, the devs committed to making those changes and they were supposed to come up with the Royal Court patch, which is why they are talking about it in the modding-focused dev diary. It is neither random nor sudden but anticipated and from what I saw in the original thread about these changes, it's no surprise to see sad and bigoted comments here. If someone was not interested in a feature like this in the first place, maybe they don't see the reason why it is mentioned here so in-depth but that is not an excuse to be a jerk about it.
 
  • 9
Reactions:
  • Added console command "bypass_requirements" (alias "bypass") that lets you do decisions, interactions, schemes, laws, and title creation despite the requirements not being met



Does this console command allow us to choose any tradition when diverging our culture?

If not, is there a code that allows absolute freedom in choosing traditions?

Or is this simply achieved by the prestige cheat, and you can access any tradition at exorbitant cost?
 
Last edited:
  • 1
Reactions:
Well thankfully for all of us you aren't in charge of how we spend our time!
Well thankfully for the actual "us", our shared community that is, your players are still very capable of accurately evaluating your decisions on what to and what not to spend your valued time on, at least judging by the user review score on steam that is
 
  • 6
Reactions:
Well thankfully for the actual "us", our shared community that is, your players are still very capable of accurately evaluating your decisions on what to and what not to spend your valued time on, at least judging by the user review score on steam that is
Unfortunately you don't speak for the universal "us". I like the DLC and accompanying patch since they feel like they need to be considered together, and although it's not entirely what I'd have chosen to go with first, I'm getting to grips with it.

And most of the reviews I've read so far don't even relate to the content as such. It's pretty much all complaining about price point and time.
 
  • 6
Reactions:
One would think that being a gay guy living in a mostly conservative country that I would be used to casual homophobia but it still feels like a pinch in the heart to read some of the comments about this patch, especially the ones pertaining to same-sex game options.

For me, playing CK3 and other similar games is like a dream fulfillment where I can shape history based on how I wish it was. English is my third language and I can't seem to find the right combination of words to emphasize how incredible and empowering it is to be able to play a game where it is possible to play a king who can marry a man and have a court full of both queer and straight knights and vassals.

There's a sense of amusement and healing to be able to play a gay king who has the approval of both his religion and culture. In my case, it provides a good escape away from the oppressiveness of the current state of reality for queer people like myself.

And this is why it sucks to read some of the comments minimizing the value of the same-sex game options included in this patch. It's painful to see that people who love the same game that I do be so hostile and dismissive of a game option that means a lot to people like me. The comments saying that the devs should've put these game options to the bottom of the list are so depressingly similar to the rhetoric of the people against any LGBTQIA+ rights. It is just another disheartening way for them to trivialize and devalue over and over and over again, in many ways, the needs and wants of queer folks like me.

Ooooof. Writing that last part just made me all of a sudden feel so little and sad.

My original goal when I opened the forums was to just post that I really enjoyed the patch and played all afternoon yesterday. So that's the happy note I'll just end this.
 
  • 5
  • 1Like
  • 1
Reactions: