• 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.
 
So, there is this discussion about turning tributaries into proper vassals and it was mentioned earlier that there might be a "destroy empire" CB. So, my idea is that it may be tied with answering calls to arms. And so if a tributary refuses a call to arms few times, its overlord would get a "destroy top title" CB. And if the overlord answers the tributary's call to arms enough times, he could get a diplomatic option to ask to vassalize the tributary.
And the opposite too, a couple of bad successions and you have vassals saying "you know we're more like tributaries".
 
It would be interesting to see some special tributary types for "Imperial" tributaries for realms at their vassal limit or "DeJure" tributaries for those outside your realm. For example, later on the HRE could have italian states as simple tributaries that aren't affected by crown laws or realm peace, and might break free on succession with similar calculation to nomad breakups.

De Jure tributaries would be for helping unstable realms avoid rebellion. Byzantines could make tributaries of croatia and serbia to avoid the religious and cultural opinion penalty, and an irish king or norman conquerer could only keep half their kingdom as direct vassals to divide potential revolts into two groups. Welsh Marches would be fun as well.
 
I would like a diplomatic action to offer to become a tributary for a neighboring kingdom. Would be the best way to keep Scotland from gunning for Argyll in every single Crovan or Somhairle game. The Kingdom of the Isles wasn't part of Scotland, but if you're not going to change the map, let me pay off the Scots while my custom kingdom becomes de jure.
 
That's a good idea: a puppet. He won't pay tribute or deliver men though the puppeteer will get a prestige bonus and the puppet a prestige malus depending on the rank and while the puppeteer is obliged to nothing the puppet must always join their overvlords war - it's just annoying that forced offensive joining is impossible. I'm inclined to say that the relationship won't end on any inheritance, but will end if the puppet is dethroned in any way.

Puppets would be formed in any of the following ways:
1. A character is installed by his future overlord;
2. A Rebel leader who fights for the throne asks a lord for help - lord joins the war and helps said leader to the throne (if the claimant isn't the rebel leader he must approve of this)

Puppet relationships are ended in the following ways:
1. Puppet is dethroned (through elective succ/factions/rebellion)
2. Puppet is ambitious (AI only) and (brave or overlord in civil war or overlord has smaller levy) and overlord has no hostages; decides he'll henceforth fare his own course = hefty relation penalty with former overlord (no war or cb, overlord can restore puppet by installing another claimant)
It would also make sense for such relationships to be capable of breaking in situations where the overlord becomes weak for some reason or is no longer able to meaningfully enforce their status. It shouldn't be possible during the reign of the ruler who was installed, but on each subsequent ruler it should be easier and easier to break away from puppet status. That is, unless the overlord helps put down a rebellion in their puppet for the throne, which should reset that soft timer.
 
I think the fact that the DD has not a single down vote says it all. I don't think I have seen that before.
Don't tempt me

Capture.JPG
 
I think it should also be possible to form De Jure Kingdoms/Empires through tributaries, but the tributaries' land counts for less then it's really worth, meaning you'd still need to normally rule a good chunk and have far more of the De Jure land of the title controlled by Tributes in order to make it(say you owned 25% of the needed land, your Tributaries would need to rule 50% of it to amount to the remaining 25% you need to form a Kingdom)
I agree, but wouldn't it be to easy for Mercia in 769 to form England early?
 
I agree, but wouldn't it be to easy for Mercia in 769 to form England early?
They would be a bit weakier than if they formed England in the old fashioned way (since they would integrate quite a lot of dukes who would most probably not like them that much), so the kingdom would be quite unstable for a while
 
They would be a bit weakier than if they formed England in the old fashioned way (since they would integrate quite a lot of dukes who would most probably not like them that much), so the kingdom would be quite unstable for a while


They are dejure vassals of same religion an culture without other claimants. The only thing they could go for is rising council powers.
 
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.

View attachment 270346
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.
View attachment 270347

Note that we’ve also decided to leave Fabricate Claim as it is right now.

Nice - I like the idea of permanent tributaries, I'd like it even more if there was a way long-term to turn them into vassals. Perhaps if you can mold them in thrall for long enough they will accept vasalisation even if they normally wouldn't?

Not so keen on paying gold for a war - where is this gold going? Also, losing gold is usually less harmful than losing prestige or piety, especially with Conclave.
 
I feel that a very simple "forced non-aggression pact"-type tributary would be worthwhile. Something that prevents the tributary from making any hostile moves towards the suzerain or allies of the suzerain (and maybe some other diplomatic restrictions), passed on after ruler deaths. This could easily be used as a lightweight version of vassalization, allowing neighboring hostile realms to experience peace without either party taking much of a financial hit over time.

I'd imagine that 99% of such pacts would be formed by the bigger realm declaring war, followed by the smaller realm instantly surrendering (perhaps after one battle for posterity). It could even be done through an ultimatum letter to the foreign ruler, "accept or we will attack".

After some time if the tributary feels like they're strong enough to take on the suzerain and wants to gain independence, then it would truly be war (unless the suzerain just doesn't care at this point, or is frightened of their former tributary).
 
Where does it go when you fabricate claim?
Bar a fully made economic system money is simply going to have to be added and removed from the game at a constant basis.
 
I have a huge problem with the way tributaries are now. They're basically OP compared to vassals.

They give you a fixed tax rate that's rather high.
They basically always fight for you with 100% of their troops (only downside being you don't control the troops).
They don't rebel or fight for your throne.

Downsides:
1. You sometimes have to reconquer them.
2. You can't use their leaders on your Council.

Tributaries are so advantageous that it's ridiculous, especially when you consider that you can, as a relatively small state, basically force your entire region to be your tributaries. I did it one playthrough as Pictland... just kept all of the Irish and Anglo-Saxons as my tributaries, save for the states that I left for conquest.
 
The tributary system is being upgraded with more variables. With a few more options, we could get what is considered as a standard liege/vassal relationship.

We could get, over time, a unified, rational, dynamic system governing all types of relations between rulers.
 
Please, consider making tributary type when tribute is 'forced marriage' - for sake of you or your heir and the prize is one of the defeated ruler's daughters.

I dunno if reverse cause will be possible - attack any country to force son of their ruler matrilineally marry one of yours daughters.
 
Please, consider making tributary type when tribute is 'forced marriage' - for sake of you or your heir and the prize is one of the defeated ruler's daughters.

I dunno if reverse cause will be possible - attack any country to force son of their ruler matrilineally marry one of yours daughters.
A royal marriage was often used as a mean to anchor a peace treaty.