CK3 DatabaseCrusader Kings III · 1.20.1.2 “Crozier” · unofficial
Silk & Silverout Tue, Nov 17What's free, what needs the DLC, price →

Interaction · Diplomatic actions

Join Confederation

variesPrestigeThe AI weighs it

Request membership in the recipient's Confederation.

What you need

You

To send it

To see it in the menu

  • Is an Independent Ruler
  • Is landed
  • One of these

  • Highest held Title is at most Duchy Rank
  • Is a ruler
  • One of these

    • Cannot play landless rulers without having an Estate
    • or

      If

      • One of these

        • Is landed
        • or

          Your Government is a Theocratic-type Government

      Then

    • or

      All of these

      • Your liege:
        • All of these

          • Holds China
          • Government is Celestial
          • Their government has the government uses ministry budget flag
      • One of these

    • or

      Has “laamp transition” (a variable the game's script sets)
  • You are not a member of a Confederation
  • The target’s confederation:
    • is_house_based = no

Join Confederation is a diplomatic character interaction in Crusader Kings III. You need: Is a ruler, You are not a Tributary, Is landed and 10 more. The AI weighs it. Reasons the AI weighs include You recently Waged War (-40), You took your Independence from them (-100), They fought for Independence from you (-50) and 45 more. It costs Prestige (varies). Patch 1.20.1.2, from game/common/character_interactions/09_mpo_interactions.txt.

for a guide, post or blog
Quick answers (3)
What are the requirements for Join Confederation in CK3?
You: Is a ruler, You are not a Tributary, Is landed, Is an Independent Ruler, Does not have the Trait: Conqueror, Does not have the Trait: Greatest of Khans, Is not at war with the target, Must not be Hostile due to recent Raiding, Highest held Title is at most Duchy Rank, Government must be Tribal or Nomadic, You are not a member of a Confederation, Is not imprisoned and Is at not War. (patch 1.20.1.2)
How do I get the AI to accept Join Confederation?
The AI weighs it. Its reasons: Cultural Acceptance, You are of a different Faith, You are of a different Faith, You are of a different Faith, You recently Waged War -40, You took your Independence from them -100, They fought for Independence from you -50, You are Bankrupt -30, Major difference in our Tiers +10, You are Allies +50, They is your Rightful Liege -75, You are their Rightful Liege +20, Their realm does not border yours -25, Their realm is distant from yours -50, Their realm is remote from yours -125, Difference in your Military Strength (max +20), Opinion of your Realm's Powerful Vassals (max +20), They is your Friend +25, They is your Best Friend +50, They is your Lover +25, They is your Soulmate +50, They is your Rival -200, They is your Nemesis -1,000, Rivalry with a Confederate -100, Nemesis is a Confederate -500, They belongs to your Dynasty +25, They belongs to your House +50, You speak the … Language +20, You are just a child -5, Your Confederation has an illegitimate Ruler -20, They is a Claimant to your Confederation -50, Ambitious -25, Paranoid -25, Arrogant -25, Greedy -15, Trusting +15, Craven +25, Intimidated by you, Terrified of you, The recipient is impressed by the Court Grandeur of your Diplomatic Court, Your low Legitimacy -10, Your low Legitimacy -25, Your high Legitimacy +15, Your high Legitimacy +40, You are both … +50, The recipient's Culture is unrelated to yours -20, Hook used +100, Spending Prestige +40, Spending Herd +40, A nearby Ruler threatens the Confederation +20, Has no neighboring Ruler worth confederating against -30, Terrified by a neighboring Ruler +50, You will join the Confederation's defensive war +100, You abandoned the Confederation -100, You abandoned the Confederation -100, The Confederation's number of members, Loyal +50 and Disloyal -50.
How much does Join Confederation cost?
Prestige (varies) (patch 1.20.1.2).

Will they accept?

The AI adds these up and accepts above zero. Reasons in italics are the script's, with no label in the game.

ReasonAmount
Base-50
Cultural Acceptance
when
  • NOT = { has_same_culture_as = scope:recipient }
  • Your culture:
    • cultural_acceptance = { target = scope:recipient.culture value <= 90 }
offer_vassalage_acceptance_value
You are of a different Faith
when
  • The character you target:
    • None of these

      • Their faith is the same as that of actor
      • Their rite: Has the Pluralist Doctrine
      • Their government has the government is in steppe flag
varies
You are of a different Faith
when
  • The character you target:
    • None of these

      • Their faith is the same as that of actor
      • Your rite: Has the Pluralist Doctrine
      • Their government has the government is in steppe flag
    • Their rite: Has the Pluralist Doctrine
varies
You are of a different Faith
when
  • The character you target:
    • Their faith is not the same as that of actor
    • Their government does not have the government is in steppe flag
    • Your rite: Has the Pluralist Doctrine
    • Their rite: Has the Pluralist Doctrine
varies
You recently Waged War
when
  • No in list:
  • The character you target: Any truce holder:
-40
You took your Independence from them
when
  • Independence war former liege is scope:recipient.top liege
-100
They fought for Independence from you
when
  • The character you target: Independence war former liege is scope:actor.top liege
-50
You are Bankrupt
when
  • root.gold <= -1
-30
Major difference in our Tiers
when
  • tier_difference = { target = scope:recipient value > 1 }
+10
You are Allies
when
  • The character you target: Is allied to you
+50
They is your Rightful Liege
when
  • The character you target:
    • is_rightful_liege_of = scope:actor
-75
You are their Rightful Liege
when
  • is_rightful_liege_of = scope:recipient
+20
Their realm does not border yours
when
  • The target’s capital province:
    • squared_distance = { target = scope:actor.capital_province value < 100000 }
  • The character you target:
    • None of these

      • Any land neighboring realm with tributaries owner:
        • One of these

          • Is you
          • or

            All of these

            • exists = scope:actor.confederation
            • is_member_of_confederation = scope:actor.confederation
          • or

            All of these

            • exists = scope:actor.confederation
            • suzerain ?= { is_member_of_confederation = scope:actor.confederation }
          • or

            suzerain ?= { this = scope:actor }
-25
Their realm is distant from yours
when
  • The target’s capital province:
    • squared_distance = { target = scope:actor.capital_province value >= 100000 }
  • The character you target:
    • None of these

      • Any land neighboring realm with tributaries owner:
        • One of these

          • Is you
          • or

            All of these

            • exists = scope:actor.confederation
            • is_member_of_confederation = scope:actor.confederation
          • or

            All of these

            • exists = scope:actor.confederation
            • suzerain ?= { is_member_of_confederation = scope:actor.confederation }
          • or

            suzerain ?= { this = scope:actor }
-50
Their realm is remote from yours
when
  • The target’s capital province:
    • squared_distance = { target = scope:actor.capital_province value >= 200000 }
  • The character you target:
    • None of these

      • Any land neighboring realm with tributaries owner:
        • One of these

          • Is you
          • or

            All of these

            • exists = scope:actor.confederation
            • is_member_of_confederation = scope:actor.confederation
          • or

            All of these

            • exists = scope:actor.confederation
            • suzerain ?= { is_member_of_confederation = scope:actor.confederation }
          • or

            suzerain ?= { this = scope:actor }
-125
Difference in your Military Strength (max +20)varies
Opinion of your Realm's Powerful Vassals (max +20)
when
  • Your top liege: Number of powerful vassals at least 1
varies
They is your Friend
when
  • The character you target:
    • Has you as friend
    • Does not have you as best friend
+25
They is your Best Friend
when
  • The character you target: Has you as best friend
+50
They is your Lover
when
  • The character you target:
    • Has you as lover
    • Does not have you as soulmate
+25
They is your Soulmate
when
  • The character you target: Has you as soulmate
+50
They is your Rival
when
  • The character you target:
    • Has you as rival
    • Does not have you as nemesis
-200
They is your Nemesis
when
  • The character you target: Has you as nemesis
-1,000
Rivalry with a Confederate
when
  • The target’s confederation › Any confederation member:
    • Has you as rival
    • Does not have you as nemesis
-100
Nemesis is a Confederate
when
  • The target’s confederation › Any confederation member: Has you as nemesis
-500
They belongs to your Dynasty
when
  • The character you target: Is of the same dynasty as you
+25
They belongs to your House
when
  • The character you target: Is of the same house as you
+50
You speak the … Language
when
  • knows_language_of_culture = scope:recipient.culture
+20
You are just a child
when
  • Is under 12 years old
  • The character you target: Age more than 16
-5
Your Confederation has an illegitimate Ruler
when
-20
They is a Claimant to your Confederation
when
  • Any held title › The character you target:
    • has_claim_on = prev
-50
Ambitious
when
-25
Paranoid
when
-25
Arrogant
when
-25
Greedy
when
-15
Trusting
when
+15
Craven
when
+25
Their opinion of you × 0.35varies
Intimidated by you
when
  • The character you target:
    • has_dread_level_towards = { target = scope:actor level = 1 }
intimidated_external_reason_value
Terrified of you
when
  • The character you target:
    • has_dread_level_towards = { target = scope:actor level = 2 }
cowed_external_reason_value
The recipient is impressed by the Court Grandeur of your Diplomatic Court
when
  • Your top liege:
    • Have a Royal Court
    • has_court_type = court_diplomatic
    • Court grandeur current level at least 1
varies
Your low Legitimacy
when
  • has_legitimacy_flag = reduced_confederation_acceptance
-10
Your low Legitimacy
when
  • has_legitimacy_flag = very_reduced_confederation_acceptance
-25
Your high Legitimacy
when
  • has_legitimacy_flag = increased_confederation_acceptance
+15
Your high Legitimacy
when
  • has_legitimacy_flag = very_increased_confederation_acceptance
+40
You are both …
when
  • Your culture is the same as that of recipient
+50
The recipient's Culture is unrelated to yours
when
  • None of these

    • You: Your culture is the same as that of recipient
  • None of these

    • Your culture › Any parent culture or above:
      • this = scope:recipient.culture
    • The target’s culture › Any parent culture or above:
      • this = scope:actor.culture
    • Your culture:
      • has_same_culture_heritage = scope:recipient.culture
-20
Hook used
when
+100
Spending Prestige
when
  • The option “prestige send option” is chosen
+40
Spending Herd
when
  • The option “herd send option” is chosen
+40
A nearby Ruler threatens the Confederation
when
  • The character you target:
    • Is not a member of a Confederation
    • One of these

      • Any land neighboring realm with tributaries owner:
      • or

        Any land neighboring realm with tributaries owner:
        • exists = suzerain
        • suzerain = { … }
      • or

        Any land neighboring realm with tributaries owner:
+20
Has no neighboring Ruler worth confederating against
when
  • None of these

    • The character you target:
      • All of these

        • Is not a member of a Confederation
        • One of these

          • Any land neighboring realm with tributaries owner:
          • or

            Any land neighboring realm with tributaries owner:
            • exists = suzerain
            • suzerain = { … }
          • or

            Any land neighboring realm with tributaries owner:
-30
Terrified by a neighboring Ruler
when
  • The character you target › Any land neighboring realm with tributaries owner:
    • top_suzerain ?= { … }
+50
You will join the Confederation's defensive war
when
  • The target’s confederation › Any confederation member:
    • is_at_war_as_defender = yes
    • Any character war:
      • is_war_leader = prev
      • is_defender = prev
      • None of these

        • Any war attacker: Is allied to you
        • Any war attacker: Is you
        • Any war defender: Is you
      • Defender war score less than 80
+100
You abandoned the Confederation
when
  • Has “left confederation” (a variable the game's script sets)
-100
You abandoned the Confederation
when
  • Has “left confederation” (a variable the game's script sets)
-100
The Confederation's number of members
when
duchy_confederation_vassals_value_recipient
Loyal
when
+50
Disloyal
when
-50
Acceptance (ai_accept) (266 lines of game script)
base = -50
modifier = {
	add = offer_vassalage_acceptance_value
	desc = cultural_acceptance_interaction_reason
	trigger = {
		scope:actor = {
			NOT = {
				has_same_culture_as = scope:recipient
			}
			culture = {
				cultural_acceptance = {
					target = scope:recipient.culture
					value <= 90
				}
			}
		}
	}
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
	trigger = {
		scope:recipient = {
			NOR = {
				faith = scope:actor.faith
				rite = {
					rite_has_doctrine = doctrine_pluralism_pluralistic
				}
				government_has_flag = government_is_in_steppe
			}
		}
	}
	add = {
		value = -30
		if = {
			limit = {
				scope:recipient.faith = {
					faith_hostility_level = {
						target = scope:actor.faith
						value >= faith_hostile_level
					}
				}
			}
			add = -30
		}
		if = {
			limit = {
				scope:recipient.faith = {
					faith_hostility_level = {
						target = scope:actor.faith
						value >= faith_evil_level
					}
				}
			}
			add = -30
		}
	}
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
	trigger = {
		scope:recipient = {
			NOR = {
				faith = scope:actor.faith
				scope:actor.rite = {
					rite_has_doctrine = doctrine_pluralism_pluralistic
				}
				government_has_flag = government_is_in_steppe
			}
			rite = {
				rite_has_doctrine = doctrine_pluralism_pluralistic
			}
		}
	}
	add = {
		value = -15
		if = {
			limit = {
				scope:recipient.faith = {
					faith_hostility_level = {
						target = scope:actor.faith
						value >= faith_hostile_level
					}
				}
			}
			add = -15
		}
		if = {
			limit = {
				scope:recipient.faith = {
					faith_hostility_level = {
						target = scope:actor.faith
						value >= faith_evil_level
					}
				}
			}
			add = -15
		}
	}
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_differentfaith_tt
	trigger = {
		scope:recipient = {
			NOR = {
				faith = scope:actor.faith
				government_has_flag = government_is_in_steppe
			}
			scope:actor.rite = {
				rite_has_doctrine = doctrine_pluralism_pluralistic
			}
			rite = {
				rite_has_doctrine = doctrine_pluralism_pluralistic
			}
		}
	}
	add = {
		value = -10
		if = {
			limit = {
				scope:recipient.faith = {
					faith_hostility_level = {
						target = scope:actor.faith
						value >= faith_hostile_level
					}
				}
			}
			add = -10
		}
		if = {
			limit = {
				scope:recipient.faith = {
					faith_hostility_level = {
						target = scope:actor.faith
						value >= faith_evil_level
					}
				}
			}
			add = -10
		}
	}
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_recent_war_tt
	trigger = {
		scope:recipient = {
			any_truce_holder = {
				this = scope:actor
			}
		}
		scope:actor = {
			NOT = {
				has_purchased_truce_with_char = {
					TARGET = scope:recipient
				}
			}
		}
	}
	add = -40
}
modifier = {
	desc = offer_confederation_independence_war_reverse_tt
	trigger = {
		scope:actor = {
			exists = var:independence_war_former_liege
			var:independence_war_former_liege = scope:recipient.top_liege
		}
	}
	add = -100
}
modifier = {
	desc = offer_confederation_independence_war_tt
	trigger = {
		scope:recipient = {
			exists = var:independence_war_former_liege
			var:independence_war_former_liege = scope:actor.top_liege
		}
	}
	add = -50
}
modifier = {
	desc = bankrupt_reason
	trigger = {
		scope:actor.gold <= -1
	}
	add = -30
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_widetitletier_tt
	trigger = {
		scope:actor = {
			tier_difference = {
				target = scope:recipient
				value > 1
			}
		}
	}
	add = 10
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_allied_tt
	trigger = {
		scope:recipient = {
			is_allied_to = scope:actor
		}
	}
	add = 50
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_rightfulvassaltitleholder_tt
	trigger = {
		scope:recipient = {
			is_rightful_liege_of = scope:actor
		}
	}
	add = -75
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_rightfulliegetitleholder_tt
	trigger = {
		scope:actor = {
			is_rightful_liege_of = scope:recipient
		}
	}
	add = 20
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_unconnectedrealm_tt
	trigger = {
		scope:recipient = {
			NOT = {
				any_land_neighboring_realm_with_tributaries_owner = {
					OR = {
						this = scope:actor
						AND = {
							exists = scope:actor.confederation
							is_member_of_confederation = scope:actor.confederation
						}
						AND = {
							exists = scope:actor.confederation
							suzerain ?= {
								is_member_of_confederation = scope:actor.confederation
							}
						}
						suzerain ?= {
							this = scope:actor
						}
					}
				}
			}
		}
		scope:recipient.capital_province = {
			squared_distance = {
				target = scope:actor.capital_province
				value < 100000
			}
		}
	}
	add = -25
}
modifier = {
	desc = offer_vassalization_interaction_aibehavior_distantrealm_tt
	trigger = {
		scope:recipient = {
			NOT = {
				any_l
# … (cut here; the rest is in the file)

As written in game/common/character_interactions/09_mpo_interactions.txt.

What happens

If they accept

  • If

    • The character you target:
      • Is a ruler
      • One of these

        • Cannot play landless rulers without having an Estate
        • or

          If

          • One of these

            • Is landed
            • or

              Government is a Theocratic-type Government

          Then

        • or

          All of these

          • Their liege:
            • All of these

              • Holds China
              • Government is Celestial
              • Their government has the government uses ministry budget flag
          • One of these

        • or

          Has “laamp transition” (a variable the game's script sets)

    Then

If they refuse

Options when sending

  • Use a Hook
  • Gift with Herd
  • Impress with Prestige

Events it fires: mpo_interactions_events.0030, mpo_interactions_events.0004

• the game's own tooltip text · ◦ our reading of the script line · code the script where neither exists

Who can use it and sees it (is_available, is_shown) (12 lines of game script)
is_available = is_independent_ruler = yes
is_landed = yes
OR = {
	government_has_flag = government_is_tribal
	government_has_flag = government_is_nomadic
}
highest_held_title_tier <= tier_duchy
is_playable_character = yes
is_confederation_member = no
is_shown = scope:recipient.confederation ?= {
	is_house_based = no
}

As written in game/common/character_interactions/09_mpo_interactions.txt.

Can be sent when (is_valid…) (11 lines of game script)
scope:actor = {
	valid_confederation_member_trigger = {
		CHARACTER = scope:recipient
	}
	is_imprisoned = no
	is_at_war = no
	NOR = {
		has_trait = conqueror
		has_trait = greatest_of_khans
	}
}

As written in game/common/character_interactions/09_mpo_interactions.txt.

Effects (on_send, on_accept, on_decline) (136 lines of game script)
on_accept = if = {
	limit = {
		scope:recipient = {
			is_playable_character = yes
		}
	}
	if = {
		limit = {
			scope:actor = {
				has_character_flag = forming_confederation
			}
		}
		scope:actor = {
			remove_character_flag = forming_confederation
		}
	}
	scope:recipient.confederation ?= {
		every_confederation_member = {
			limit = {
				is_at_war_as_defender = yes
			}
			every_character_war = {
				limit = {
					is_war_leader = prev
					is_defender = prev
					NOR = {
						any_war_attacker = {
							is_allied_to = scope:actor
						}
						any_war_attacker = {
							this = scope:actor
						}
						any_war_defender = {
							this = scope:actor
						}
					}
					defender_war_score < 80
				}
				add_to_list = recipient_wars
			}
		}
	}
	every_in_list = {
		list = recipient_wars
		save_scope_as = recipient_war
		primary_attacker = {
			save_scope_as = attacker
		}
		add_defender = scope:actor
	}
	scope:recipient = {
		save_scope_as = confederation_offerer
	}
	scope:actor = {
		save_scope_as = confederation_accepter
	}
	scope:recipient.confederation = {
		save_scope_as = confederation
	}
	show_as_tooltip = {
		scope:actor = {
			custom_tooltip = join_confederation_recipient_tt
			custom_tooltip = confederation_defensive_wars_tt
			custom_tooltip = unlock_leave_confederation_interaction_tt
		}
	}
	if = {
		limit = {
			scope:actor = {
				government_has_flag = government_is_nomadic
			}
		}
		scope:actor = {
			add_character_modifier = {
				modifier = mpo_confederation_member_modifier
				years = 5
			}
			capital_county ?= {
				change_county_fertility = major_county_fertility_level_gain
			}
		}
	}
	if = {
		limit = {
			scope:actor = {
				is_ai = no
			}
		}
		scope:actor = {
			custom_tooltip = confederation_raiding_attacking_tt
			if = {
				limit = {
					government_has_flag = government_is_nomadic
				}
				custom_tooltip = confederation_restrictions_warning_tt
			}
			else = {
				custom_tooltip = confederation_restrictions_tribe_warning_tt
			}
		}
	}
	scope:actor = {
		if = {
			limit = {
				government_has_flag = government_is_nomadic
			}
			custom_tooltip = confederation_migrating_leaving_warning_tt
		}
	}
	scope:actor = {
		trigger_event = mpo_interactions_events.0030
	}
	if = {
		limit = {
			scope:prestige_send_option = yes
		}
		scope:recipient = {
			add_prestige = scope:actor.minor_prestige_value
		}
	}
	if = {
		limit = {
			scope:herd_send_option = yes
		}
		scope:actor = {
			pay_herd = {
				target = scope:recipient
				value = domicile.minor_herd_value
			}
		}
	}
}
on_decline = scope:actor = {
	save_scope_as = asking_to_join
	trigger_event = mpo_interactions_events.0004
}

As written in game/common/character_interactions/09_mpo_interactions.txt.

Category
Diplomatic actions
Cost: Prestige
varies
Again on the same character
after 3 years
In the menu
main list
ID
join_confederation_interaction

Source: game/common/character_interactions/09_mpo_interactions.txt and the English localisation, Crusader Kings III 1.20.1.2. “You” is the character who sends it (scope:actor, or a puppet acting for you); “the character you target” is the recipient.

Spotted a mistake on this page?