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

CK2 Dev Diary #53: Time to pay Tribute

Greetings!

Today I’d like to talk to you about a part of the game that we’ve chosen to overhaul and improve - the Tributary system! Introduced in Horse Lords, the ‘Make Tributary’ CB allowed you to go to war with a neighboring realm to make them pay you 40% of their income until the death of your current character. It was quite a simple system that didn’t always fit the intended purpose very well, so we decided to make it more advanced and capable of diverse use!

Tributaries can now come in a lot of flavors, as they are entirely definable in a new ‘tributary_types’ file. You define a name and then you set the parameters for how you would like the Tributary to work. You are able to customize a lot of things, for example; the various tribute percentages, if the Tributary should be set free on death or if the Suzerain must defend the Tributary in wars.

With this new system we have lots of ideas on where we could add new types of Tributaries, i.e. Permanent Tributaries or Nomad Tributaries. If you have any ideas for a type of Tributary (and when it would make sense to have it/when to gain access to the CB) feel free to post a suggestion in this thread!

To demonstrate, here’s the script for an example Tributary type:

Code:
example = {                                # name used for that type of tributary. "default" is the standard type, replacing the old tributaries, and "none" is reserved and should not be used
    tributary_name = TRIBUTARY_DEFAULT_NAME        # localization string used for tributaries of that type (ie "Tributary" for the default type, "Permanent Tributary" for the Permanent type, etc)
    tributary_plural = TRIBUTARY_DEFAULT_PLURAL    # localization string used for tributaries of that type, when there is more than one (ie "Tributaries" for the default type, "Permanent Tributaries" for the Permanent type, etc)
    suzerain_name = SUZERAIN_DEFAULT_NAME        # localization string used for suzerains of that tributary type (ie "Suzerain" for the default type, "Permanent Suzerain" for the Permanent type, etc)
    tribute_name = TRIBUTARY_DEFAULT_TRIBUTE    # localization string used for "paying $TRIBUTE$" for that tributary type
    breaks_at_suzerain_death = yes        # yes/no value determining if the tributary relationship is dissolved when the suzerain dies.
    breaks_at_tributary_death = no         # yes/no value determining if the tributary relationship is dissolved when the tributary dies
    suzerain_must_defend = no             # yes/no value determining if the suzerain is forced to accept calls to arms from tributary in defensive wars (wars were the tributary is the defender)
                                        # if they decline anyway, they will lose the tributary and an amount of prestige defined in defines.lua, called SUZERAIN_DEFENDER_CALL_DECLINE_COST
    tributary_can_be_summoned = yes     # yes/no value determining if the suzerain can calls the tributaries to war (as tribal vassals / allies)   
    tributary_must_defend = yes            # yes/no value determining if the tributaries are forced to accept defensive calls to arms
    tributaries_can_infight = yes        # yes/no value determining if the tributaries can fight against each others, if both tributaries are of the same type
                                        # if tributaries are of different types, they will always be allowed to fight each other, even if they have the same suzerain
    suzerain_can_join_infighting = yes    # yes/no value determining if the suzerain can join a tributary in a war against another
    tributaries_can_unite = no             # yes/no value determining if, when trying to break, the tributaries can band together against the suzerain, à la major revolt
    breaks_on_realm_change=yes            # yes/no value determining if the tributary relationship is dissolved when the tributary's titles change realms
    cbs_against_suzerain = {            # list of CBs tributaries can use against their suzerain
        free_tributary_cb
    }
    income_tribute_percentage = {        # how much of their monthly income the tributary must pay to their suzerain.
                                        # THIS IS ONLY EVALUATED WHEN THE TRIBUTARY RELATIONSHIP IS FORMED
                                        # and is not reevaluated afterwards
                                        # this value is an MTTH and should compute a value between 0 and 1, inclusive
                                        # in case the total is less than 0, it will be counted as 0
                                        # in case the total is more than 1, it will be counted as 1
                                        # current scope is the tributary, FROM is the suzerain
        value = 0.10
        additive_modifier = {
            value = 0.05
            FROM = {
                is_merchant_republic = yes
            }
        }
    }
    reinforce_tribute_percentage = {    # How much of the tributary's reinforcement rate will go to the suzerain's instead.
                                        # THIS IS ONLY EVALUATED WHEN THE TRIBUTARY RELATIONSHIP IS FORMED
                                        # and is not reevaluated afterwards
                                        # this value is an MTTH and should compute a value between 0 and 1, inclusive
                                        # in case the total is less than 0, it will be counted as 0
                                        # in case the total is more than 1, it will be counted as 1
                                        # current scope is the tributary, FROM is the suzerain

                                        # this is applied by subtracting the percentage, as is, from the tributary's reinforcement rate
                                        # and adding a scaled (based on demesne size= version of the percentage to the suzerain
                                        # So, for example, the tributary loses 10% of reinforcement rate, but the suzerain gains 10% * (tributary's demesne size) / (suzerain's demesne size)
        value = 0.10
        additive_modifier = {
            value = 0.05
            FROM = {
                is_merchant_republic = yes
            }
        }
    }
    prestige_to_suzerain = {            # how much of prestige the suzerain gains every month per tributary (of that type) he holds
                                        # this value is an MTTH and the raw value will be added to the suzerain's prestige every month.
                                        # current scope is the suzerain, FROM is the tributary
        value = 0
    }
    prestige_to_tributary = {            # how much prestige the tributary gains every month
                                        # this value is an MTTH and the raw value will be added to the tributary's prestige every month.
                                        # to make them lose prestige, return a negative value
                                        # current scope is the tributary, FROM is the suzerain
        value = 0
    }
    piety_to_suzerain = {                # how much of piety the suzerain gains every month per tributary (of that type) he holds
                                        # this value is an MTTH and the raw value will be added to the suzerain's piety every month.
                                        # current scope is the suzerain, FROM is the tributary
        value = 0
    }
    piety_to_tributary = {                # how much of piety a tributary gains every month
                                        # this value is an MTTH and the raw value will be added to the tributary's piety every month.
                                        # to make them lose piety, return a negative value
                                        # current scope is the tributary, FROM is the suzerain
        value = 0
    }
}

I’d also like to expand upon something we touched upon in the last DD; the new ‘unjust conquest’ CB (now renamed to Border Dispute). When declaring a Border Dispute over a County you first and foremost have to pay an upfront cost of Piety and Gold scaled to your tier (in the case of Pagans, prestige is used), but you also take an opinion hit from both your religious head (if you have one) as well as any landed characters of the targeted religious group in both your realm and the one you’re attacking. Note that these opinion modifiers stack! This makes the border Dispute CB dangerous to use on characters of your own religion, especially if you have a religious head capable of excommunicating you. You will primarily want to use this CB to expand early on when drawing the ire of your co-religionists is worth the risk, or against characters not of your religion.

Border_dispute_tooltip.png

Example is of an Irish Count wanting to conquer another Irish Count.


Note that Muslims, Nomads and in certain cases Pagans do not have access to this CB, as their current CB’s are already superior. It is also possible to turn the CB off entirely by using Game Rules.
Border_dispute_GR.png


Note that we’ve also decided to leave Fabricate Claim as it is right now.
 
What about a tributary that was basically just a lot of gold - a one-time payment, with a cool-down period of time afterward. That could illustrate the sort of arrangement the Vikings made with the English/Saxon kings, to leave them alone. Would perhaps work with pagans, who don't want to take land, but rather just want some gold - and if they feel they don't want to risk a long-term arrangement, with annual payments - especially if the ruler is already old, and there is a risk he would die soon after...
 
Do the prestige_to_suzerain and piety_to_suzerain can scale based on the rank ?
So having a count tributary will give less prestige than a king one

I understand why a border dispute would cost opinion, piety or prestige, but why would it cost gold?
The claim fabrication costs gold, and this cb is supposed to be less powerful and more expensive than a regular claim fabrication
 
So now we will have more than one form of tributary? Interesting, very interesting. Any chance we will get more than one form of vassalage? I mean, tributares are cool etc, but they are not vanilla after all.
 
Regarding the ideas for new tributaries, I always baffled at the idea of pushing my vassal's claim for a kingdom if it would make them independent. Why would I go to war for some courtiers claim if they would just leave my kingdom all together.

Idea for new tributary:

Overlordship: After pushing and winning a vassal's claim on a title equal to your title (i.e. Kingdom Title), the vassal should become an independent tributary. This should allow you to raise their levies (maybe at a reduced level to balance the game). This effectively makes the new kingdom a vassal to your kingdom without upsetting the whole "de facto / de jure" liege system.
 
I have never used tributary cb, I don't want to win a war just to lose everything because of death of either ruler. Border dispute cb seems alright. Happy to see fabrication stay, I found it useful recently when reforming Romuva.

How about tributary that lasts preset amount of time?
 
Any insight as to why the Fabricate Claim is remaining?

Although I do not speak for them.

It is in my opinion that it is needed simply for utility that even larger empires or kingdoms need it as an option when trying to take one specific county.

And although its speed and consistency isn't there it does work for smaller starts of the game just starting to expand.