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 House Bloc

variesInfluencevariesPrestigeAccepted automatically in some cases; otherwise the AI weighs it

Ask the recipient's permission to join the …

What you need

You

To send it

  • If

    • Is at war with the target

    Then

    • You must not be at War with anyone besides …
  • … must be House Head of a Noble Family Challenge your House Head for leadership, or use the Create Cadet Branch Decision
  • … House has left or been removed from the … within the last 5 years (…)
  • A Leading House cannot join another Bloc Leave your current Bloc, or give away Bloc Leadership
  • Not all of these

    • Is played by the AI

To see it in the menu

  • Your Government uses Blocs
  • If played by the AI:
  • house.house_head ?= this
  • Is a ruler
  • Your top liege: Government uses Blocs
  • Highest held Title is at least County Rank
  • Your top liege:
    • Government uses Blocs
    • Their top liege: Government uses Blocs
  • The target is not you
  • If

    • You: Is played by the AI

    Then

    • The character you target:

The character you target

To send it

To see it in the menu

  • Is a ruler
  • Government uses Blocs
  • Their top liege: Government uses Blocs
  • Highest held Title is at least County Rank
  • Their top liege:
    • Government uses Blocs
    • Their top liege: Government uses Blocs
  • If

    a check the game hides

    Then

    • NOT = { house.house_confederation = scope:actor.house.house_confederation }

Join House Bloc is a diplomatic character interaction in Crusader Kings III. You need: A Leading House cannot join another Bloc Leave your current Bloc, or give away Bloc Leadership. Accepted automatically in some cases; otherwise the AI weighs it. Reasons the AI weighs include Gold sent (+25), Spending Prestige (+25), Spending Influence (+25) and 4 more. It costs Influence (varies), Prestige (varies). Patch 1.20.1.2, from game/common/character_interactions/10_tgp_japan_interactions.txt.

for a guide, post or blog
Quick answers (3)
What are the requirements for Join House Bloc in CK3?
You: A Leading House cannot join another Bloc Leave your current Bloc, or give away Bloc Leadership. (patch 1.20.1.2)
How do I get the AI to accept Join House Bloc?
Accepted automatically in some cases; otherwise the AI weighs it. Its reasons: Gold sent +25, Spending Prestige +25, Spending Influence +25, House Relation Level, Landed House members, Landless with no Military Power -75, Same House Aspiration +25, Different Government -250, Tier (Emperor) +200, Few Bloc Member House and Few Bloc members.
How much does Join House Bloc cost?
Influence (varies), Prestige (varies) (patch 1.20.1.2).

Will they accept?

Accepted automatically when:

  • They use their Hook on …

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

ReasonAmount
Base-25
Gold sent
when
  • The option “gold” is chosen
+25
Spending Prestige
when
  • The option “prestige” is chosen
+25
Spending Influence
when
  • The option “influence” is chosen
+25
Their opinion of you × 0.5
when
  • step = 5
  • max = 50
varies
House Relation Level
when
  • The target’s house is not your
  • The target’s house › Any house relation: Any relation house:
varies
Landed House membersvaries
Landless with no Military Power
when
  • Your house’s house head:
    • Is not landed
    • Current military strength at most 0
-75
Same House Aspiration
when
  • Your house:
    • has_same_house_aspiration_as = scope:recipient.house
+25
Different Government
when
  • NOT = { has_same_government = scope:recipient }
-250
Tier (Emperor)
when
  • Holds Japan
+200
A scripted reason
when
  • Your house › Any house member:
    • Is landed
    • Any held county:
      • is_landless_type_title = no
      • One of these

        • Any neighboring county:
          • holder.house.house_confederation = scope:recipient.house.house_confederation
        • or

          Their duchy › Any de jure county:
          • holder.house.house_confederation = scope:recipient.house.house_confederation
  • DESC = AI_NEARBY_BLOC_REASON
+25
Few Bloc Member House
when
  • The target’s house’s house confederation: Confederation member house (less than 8):
varies
Few Bloc members
when
  • The target’s top liege › Sub realm county (less than 12):
    • holder.house.house_confederation = scope:recipient.house.house_confederation
varies
Acceptance (ai_accept) (139 lines of game script)
base = -25
modifier = {
	scope:gold = yes
	add = 25
	desc = TRADE_GOLD_FOR_BETTER_AI_ACCEPTANCE_TT
}
modifier = {
	scope:prestige = yes
	add = 25
	desc = PRESTIGE_INTERACTION_ACCEPTANCE_SEND_OPTION
}
modifier = {
	scope:influence = yes
	add = 25
	desc = INFLUENCE_INTERACTION_ACCEPTANCE_SEND_OPTION
}
opinion_modifier = {
	who = scope:recipient
	opinion_target = scope:actor
	multiplier = 0.5
	step = 5
	max = 50
}
house_relation_ai_accept_modifiers = {
	HOUSE_1_MEMBER = scope:recipient
	HOUSE_2_MEMBER = scope:actor
	MULTIPLIER = -1
}
modifier = {
	add = {
		scope:actor.house = {
			every_house_member = {
				limit = {
					top_liege = root.top_liege
					is_landed = yes
				}
				add = 25
			}
		}
	}
	desc = AI_LANDED_HOUSE_MEMBERS_REASON
}
modifier = {
	scope:actor.house.house_head = {
		is_landed = no
		current_military_strength <= 0
	}
	add = -75
	desc = AI_LANDLESS_REASON
}
modifier = {
	scope:actor.house ?= {
		has_same_house_aspiration_as = scope:recipient.house
	}
	add = 25
	desc = AI_SAME_ASPIRATION_REASON
}
modifier = {
	scope:actor = {
		NOT = {
			has_same_government = scope:recipient
		}
	}
	add = -250
	desc = AI_DIFFERENT_GOVERNMENT_REASON
}
modifier = {
	scope:actor = {
		has_title = title:e_japan
	}
	add = 200
	desc = TIER_REASON_EMPEROR
}
modifier = {
	scope:actor.house = {
		any_house_member = {
			is_landed = yes
			any_held_county = {
				is_landless_type_title = no
				OR = {
					any_neighboring_county = {
						holder.house.house_confederation = scope:recipient.house.house_confederation
					}
					duchy ?= {
						any_de_jure_county = {
							holder.house.house_confederation = scope:recipient.house.house_confederation
						}
					}
				}
			}
		}
	}
	add = 25
	DESC = AI_NEARBY_BLOC_REASON
}
modifier = {
	scope:recipient.house.house_confederation ?= {
		any_confederation_member_house = {
			count < 8
		}
	}
	add = {
		value = 25
		if = {
			limit = {
				scope:recipient.house.house_confederation ?= {
					any_confederation_member_house = {
						count < 4
					}
				}
			}
			add = 25
		}
	}
	desc = AI_BLOC_FEW_HOUSES_REASON
}
modifier = {
	scope:recipient.top_liege = {
		any_sub_realm_county = {
			count < 12
			holder.house.house_confederation = scope:recipient.house.house_confederation
		}
	}
	add = {
		value = 25
		if = {
			limit = {
				scope:recipient.top_liege = {
					any_sub_realm_county = {
						count < 6
						holder.house.house_confederation = scope:recipient.house.house_confederation
					}
				}
			}
			add = 25
		}
	}
	desc = AI_BLOC_FEW_MEMBERS_REASON
}

As written in game/common/character_interactions/10_tgp_japan_interactions.txt.

What happens

If they accept

  • If

    Then

    • You: Use a Hook on the target

    Otherwise

    • If

      • The option “gold” is chosen

      Then

      • Pay gold to the target
    • If

      • The option “prestige” is chosen

      Then

    • If

      • The option “influence” is chosen

      Then

      • Influence changes
      • The character you target: Influence changes
  • If you are a member of a Confederation › Your house:
    • house_confederation ?= { … }
    • If

      • scope:leaver.house_head.house.house_confederation ?= scope:bloc

      Then

      • If

        • The bloc: Confederation member house (at most 2):

        Then

        • House … will leave the …
        • The … will disband

        Else if

        • The leader is not the leaver

        Then

        • House … will leave the … and may not rejoin for 5 years
      • If

        • The leader is the leaver

        Then

        • The bloc:
          • tgp_find_new_house_bloc_leader_effect = { }

        Otherwise

        • If

          • flag:yes = flag:yes

          Then

          • The leader:
            • Their house head:
              • If

                Then

                • remove_opinion = { target = scope:leaver.house_head modifier = joined_house_bloc_opinion }
              • Opinion: Left House Bloc (-15)
            • change_house_relation_effect = { … }
        • If

          • flag:no = flag:yes

          Then

          • The leaver’s house head: All … House members gain a one-way Truce with all other Bloc members for 5 years
  • The target’s house:
    • If

      a check the game hides

      Then

      • House … will form the … Bloc
  • Your house:
    • If

      a check the game hides

      Then

      • The joiner’s house head: House … will join the … Bloc

      Else if

      • If

        a check the game hides

        Then

        • The old bloc is not the bloc

      Then

      • House … will join the …
      • If

        • flag:yes = flag:yes
        • The inviter is not the joiner

        Then

        • The inviter:
          • Their house head › If played by the AI:
            • If

              Then

              • remove_opinion = { modifier = left_house_bloc_opinion target = scope:joiner.house_head }
            • Opinion: Joined House Bloc (+15)
          • If

            a check the game hides

            Then

            • impact_house_relation = { target = scope:other_house steps = scope:steps description = house_relation_reason_joined_bloc_desc }
  • If

    Then

    • … will not be able to leave the Bloc for 10 years

Options when sending

  • Send Gold
  • Impress with Prestige
  • Offer Influence
  • Use a Hook

• 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) (42 lines of game script)
is_available = government_has_flag = government_has_house_blocs
trigger_if = {
	limit = {
		is_ai = yes
	}
	OR = {
		is_landed = yes
		tgp_is_ceremonial_liege_trigger = yes
	}
}
house.house_head ?= this
tgp_house_bloc_interaction_valid_trigger = yes
NOT = {
	has_character_flag = recently_joined_bloc
}
is_shown = scope:recipient != scope:actor
scope:recipient = {
	exists = house.house_confederation
	tgp_house_bloc_interaction_valid_trigger = yes
	trigger_if = {
		limit = {
			exists = scope:actor.house.house_confederation
		}
		NOT = {
			house.house_confederation = scope:actor.house.house_confederation
		}
	}
}
trigger_if = {
	limit = {
		scope:actor = {
			is_ai = yes
		}
	}
	scope:recipient = {
		house.house_head ?= this
		OR = {
			is_landed = yes
			tgp_is_ceremonial_liege_trigger = yes
		}
	}
}

As written in game/common/character_interactions/10_tgp_japan_interactions.txt.

Can be sent when (is_valid…) (43 lines of game script)
scope:actor = {
	trigger_if = {
		limit = {
			is_at_war_with = scope:recipient
		}
		custom_tooltip = {
			text = join_bloc_war_tt
			any_character_war = {
				using_cb = japan_install_bloc_member_cb
				primary_attacker = scope:recipient
				primary_defender = scope:actor
			}
		}
	}
	tgp_house_bloc_interaction_valid_showing_failures_trigger = yes
	custom_tooltip = {
		text = join_bloc_left_cooldown_tt
		NOT = {
			house = {
				any_in_list = {
					variable = left_bloc_cooldown
					scope:recipient.house.house_confederation ?= this
				}
			}
		}
	}
	custom_tooltip = {
		text = join_bloc_already_leading_another_tt
		exists = house
		NOT = {
			confederation.leading_house ?= house
		}
	}
	NAND = {
		is_ai = yes
		scope:recipient = {
			has_character_flag = join_house_bloc_ai_send_cooldown
		}
	}
}
scope:recipient = {
	tgp_house_bloc_interaction_valid_showing_failures_trigger = yes
}

As written in game/common/character_interactions/10_tgp_japan_interactions.txt.

Effects (on_send, on_accept, on_decline) (99 lines of game script)
on_send = if = {
	limit = {
		scope:actor = {
			is_ai = yes
		}
	}
	scope:recipient = {
		add_character_flag = {
			flag = join_house_bloc_ai_send_cooldown
			months = 3
		}
	}
}
debug_log = join_house_bloc
debug_log_scopes = yes
on_accept = scope:actor = {
	if = {
		limit = {
			scope:hook = yes
		}
		scope:actor = {
			use_hook = scope:recipient
		}
	}
	else = {
		if = {
			limit = {
				scope:gold = yes
			}
			pay_short_term_gold = {
				target = scope:recipient
				gold = scope:recipient.medium_gold_value
			}
		}
		if = {
			limit = {
				scope:prestige = yes
			}
			add_prestige = scope:recipient.medium_prestige_loss
			scope:recipient = {
				add_prestige = medium_prestige_value
			}
		}
		if = {
			limit = {
				scope:influence = yes
			}
			change_influence = scope:recipient.medium_gold_value_negative
			scope:recipient = {
				change_influence = medium_gold_value
			}
		}
	}
	if = {
		limit = {
			is_confederation_member = yes
		}
		house = {
			tgp_save_bloc_leaving_reason_effect = {
				LEAVING_HOUSE = scope:actor.house
				INVITING_HOUSE = scope:recipient.house
			}
			tgp_leave_house_bloc_effect = {
				OPINION = flag:yes
				TRUCE = flag:no
			}
		}
	}
}
scope:recipient.house = {
	if = {
		limit = {
			NOT = {
				exists = house_confederation
			}
		}
		tgp_create_house_bloc_effect = {
			TYPE = none
		}
	}
}
scope:actor = {
	house = {
		tgp_join_house_bloc_effect ?= {
			INVITER = scope:recipient.house
			OPINION = flag:yes
		}
	}
	if = {
		limit = {
			scope:hook = yes
		}
		add_character_flag = {
			flag = forced_bloc_membership
			years = 10
		}
		custom_tooltip = forced_bloc_membership_tt
	}
}

As written in game/common/character_interactions/10_tgp_japan_interactions.txt.

Category
Diplomatic actions
Cost: Influence
varies
Cost: Prestige
varies
Again on the same character
after 5 years
In the menu
main list
ID
join_house_bloc_interaction

Source: game/common/character_interactions/10_tgp_japan_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. “…” marks words the game fills in at play time (a name, a title).

Spotted a mistake on this page?