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

Interaction · Friendly actions

Ask to Join my Movement

from 100InfluenceThe AI weighs it

Try to convince the the recipient to change their stance on the Dynastic Cycle and switching Movement allegiance to yours

What you need

You

To send it

  • If

    • You › top_participant_group:dynastic_cycle:
      • participant_group_type = hegemon_ruler

    Then

    • situation:dynastic_cycle.situation_participant_group:pro_hegemon_movement:
      • NOT = { participant_group_has_character = scope:recipient }
  • situation:dynastic_cycle.situation_participant_group:undecided_movement:
    • NOT = { participant_group_has_character = scope:actor }
  • top_participant_group:dynastic_cycle:
    • NOT = { participant_group_has_character = scope:recipient }

To see it in the menu

  • top_participant_group:dynastic_cycle:
    • NOT = { participant_group_type = other_rulers }
    • NOT = { participant_group_type = undecided_movement }
  • title:h_china.holder ?= top_liege
  • If played by the AI:
    • One of these

      • this = top_liege
      • or

        Your house:
        • is_powerful_family = yes
      • or

        Any relation: Is played by a person
      • or

        Your house:
        • is_dominant_family = yes
      • or

        Dynastic Cycle › Any participant group: Movement leader is root
  • scope:recipient != title:h_china.holder
  • The target is not you

The character you target

  • top_participant_group:dynastic_cycle:
    • NOT = { participant_group_type = other_rulers }

Ask to Join my Movement is a friendly character interaction in Crusader Kings III. The AI weighs it. Reasons the AI weighs include The recipient is your Disciple (+500), The recipient is … Leader (-50), Was Convinced to Join their Movement (-50) and 19 more. It costs Influence (from 100). Patch 1.20.1.2, from game/common/character_interactions/10_tgp_interactions.txt.

for a guide, post or blog
Quick answers (2)
How do I get the AI to accept Ask to Join my Movement?
The AI weighs it. Its reasons: The recipient is your Disciple +500, The recipient is … Leader -50, Was Convinced to Join their Movement -50, Difference in Merit Rank, The recipient looks up to a Powerful Family +15, The recipient dare not refuse a Dominant Family +25, The recipient belong to a Powerful Family -15, The recipient belong to a Dominant Family -25, Difference in Level of Influence, The recipient is a Powerful Vassal -10, You are a Powerful Vassal +5, Easy +10, Very Easy +20, Scheming against my Rival -20, Scheming against my Nemesis -1,000, Scheming against my Friend +10, Scheming against my Best Friend +1,000, Scheming against my Soulmate +1,000, Loyal to spouse +10, Placate Movements Mandate +10, Wisdom +10, Estate Buildings, I get Gold, I get Gold, I get a Hook +20, I get a Strong Hook +50, Weak Hook used +100, I get Prestige, I get Influence and I get Piety.
How much does Ask to Join my Movement cost?
Influence (from 100) (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-30
Their opinion of you × 0.5varies
The recipient is your Disciple
when
  • Has the target as disciple
+500
The recipient is … Leader
when
  • Dynastic Cycle › Any participant group: Movement leader is scope:recipient
-50
Was Convinced to Join their Movement
when
  • The character you target: Has “persuaded to join movement” (a variable the game's script sets)
-50
Difference in Merit Rank
when
  • Your merit level is not the target’s
varies
The recipient looks up to a Powerful Family
when
  • Your house:
    • is_powerful_family = yes
  • The target’s house:
    • is_powerful_family = no
    • is_dominant_family = no
+15
The recipient dare not refuse a Dominant Family
when
  • Your house:
    • is_dominant_family = yes
  • The target’s house:
    • is_dominant_family = no
+25
The recipient belong to a Powerful Family
when
  • The target’s house:
    • is_powerful_family = yes
  • Your house:
    • is_powerful_family = no
    • is_dominant_family = no
-15
The recipient belong to a Dominant Family
when
  • The target’s house:
    • is_dominant_family = yes
  • Your house:
    • is_dominant_family = no
-25
Difference in Level of Influence
when
  • Your influence level is not the target’s
varies
The recipient is a Powerful Vassal
when
  • is_powerful_vassal = no
  • The character you target:
    • is_powerful_vassal = yes
-10
You are a Powerful Vassal
when
  • is_powerful_vassal = yes
  • The character you target:
    • is_powerful_vassal = no
+5
Easy
when
  • Is played by the AI
  • Game rule set to “Easy”
  • The character you target: Is played by a person
+10
Very Easy
when
  • Is played by the AI
  • Game rule set to “Very Easy”
  • The character you target: Is played by a person
+20
Scheming against my Rival
when
  • Has the target as rival
  • Does not have the target as nemesis
-20
Scheming against my Nemesis
when
  • Has the target as nemesis
-1,000
Scheming against my Friend
when
  • Has the target as friend
  • Does not have the target as best friend
+10
Scheming against my Best Friend
when
  • Has the target as best friend
+1,000
Scheming against my Soulmate
when
  • Has the target as soulmate
+1,000
Loyal to spouse
when
  • Is the target’s consort
  • Opinion of recipient more than 0
+10
Placate Movements Mandate
when
  • Your liege:
    • has_active_mandate = placate_movements
+10
Wisdom
when
+10
Estate Buildings
when
  • Your domicile:
    • One of these

      • has_domicile_parameter = celestial_invite_to_movement_acceptance_1
      • or

        has_domicile_parameter = celestial_invite_to_movement_acceptance_2
      • or

        has_domicile_parameter = celestial_invite_to_movement_acceptance_3
      • or

        has_domicile_parameter = celestial_invite_to_movement_acceptance_4
varies
I get Gold
when
  • The option “gift” is chosen
varies
I get Gold
when
  • The option “gift significant” is chosen
varies
I get a Hook
when
  • The option “offer hook” is chosen
+20
I get a Strong Hook
when
  • The option “offer hook strong” is chosen
+50
Weak Hook used
when
+100
I get Prestige
when
  • The option “prestige” is chosen
varies
I get Influence
when
  • The option “influence” is chosen
varies
I get Piety
when
  • The option “piety” is chosen
varies
Acceptance (ai_accept) (270 lines of game script)
base = -30
opinion_modifier = {
	opinion_target = scope:actor
	who = scope:recipient
	multiplier = 0.5
}
modifier = {
	scope:actor = {
		has_relation_disciple = scope:recipient
	}
	desc = is_actors_disciple
	add = 500
}
modifier = {
	situation:dynastic_cycle ?= {
		any_participant_group = {
			var:movement_leader ?= scope:recipient
		}
	}
	desc = fellow_movement_leader
	add = -50
}
modifier = {
	add = -50
	scope:recipient = {
		has_variable = persuaded_to_join_movement
	}
	desc = already_movement_member
}
modifier = {
	scope:actor.merit_level != scope:recipient.merit_level
	title:h_china.holder ?= {
		this != scope:actor
	}
	add = {
		add = {
			add = 10
			multiply = scope:actor.merit_level
		}
		subtract = {
			add = 10
			multiply = scope:recipient.merit_level
		}
	}
	desc = difference_in_merit_level_reason
}
modifier = {
	scope:actor.house ?= {
		is_powerful_family = yes
	}
	scope:recipient.house ?= {
		is_powerful_family = no
		is_dominant_family = no
	}
	add = 15
	desc = your_house_is_powerful_reason
}
modifier = {
	scope:actor.house ?= {
		is_dominant_family = yes
	}
	scope:recipient.house ?= {
		is_dominant_family = no
	}
	add = 25
	desc = your_house_is_dominant_reason
}
modifier = {
	scope:recipient.house ?= {
		is_powerful_family = yes
	}
	scope:actor.house ?= {
		is_powerful_family = no
		is_dominant_family = no
	}
	add = -15
	desc = their_house_is_powerful_reason
}
modifier = {
	scope:recipient.house ?= {
		is_dominant_family = yes
	}
	scope:actor.house ?= {
		is_dominant_family = no
	}
	add = -25
	desc = their_house_is_dominant_reason
}
modifier = {
	scope:actor.influence_level != scope:recipient.influence_level
	add = {
		add = {
			add = 5
			multiply = scope:actor.influence_level
		}
		subtract = {
			add = 5
			multiply = scope:recipient.influence_level
		}
	}
	desc = difference_in_influence_level_reason
}
modifier = {
	scope:recipient = {
		is_powerful_vassal = yes
	}
	scope:actor = {
		is_powerful_vassal = no
	}
	add = -10
	desc = RECIPIENT_POWERFUL_VASSAL
}
modifier = {
	scope:actor = {
		is_powerful_vassal = yes
	}
	scope:recipient = {
		is_powerful_vassal = no
	}
	add = 5
	desc = AI_POWERFUL_VASSAL
}
modifier = {
	add = 10
	is_ai = yes
	scope:recipient = {
		is_ai = no
	}
	has_game_rule = easy_difficulty
	desc = easy_difficulty
}
modifier = {
	add = 20
	is_ai = yes
	scope:recipient = {
		is_ai = no
	}
	has_game_rule = very_easy_difficulty
	desc = very_easy_difficulty
}
modifier = {
	add = -20
	has_relation_rival = scope:recipient
	NOT = {
		has_relation_nemesis = scope:recipient
	}
	desc = SCHEME_AGAINST_RIVAL
}
modifier = {
	add = -1000
	has_relation_nemesis = scope:recipient
	desc = SCHEME_AGAINST_NEMESIS
}
modifier = {
	add = 10
	has_relation_friend = scope:recipient
	NOT = {
		has_relation_best_friend = scope:recipient
	}
	desc = SCHEME_AGAINST_FRIEND
}
modifier = {
	add = 1000
	has_relation_best_friend = scope:recipient
	desc = SCHEME_AGAINST_BEST_FRIEND
}
modifier = {
	add = 1000
	has_relation_soulmate = scope:recipient
	desc = SCHEME_AGAINST_SOULMATE
}
modifier = {
	add = 10
	is_consort_of = scope:recipient
	opinion = {
		target = scope:recipient
		value > 0
	}
	desc = SCHEME_AGAINST_SPOUSE
}
modifier = {
	add = 10
	scope:actor.liege ?= {
		has_active_mandate = placate_movements
	}
	desc = placate_movements_bonus
}
modifier = {
	scope:actor = {
		dynasty ?= {
			has_dynasty_perk = tgp_chinese_legacy_4
		}
	}
	add = dynasty_legacy_invite_to_movement_value
	desc = tgp_dynasty_legacy_movement_accept
}
modifier = {
	add = {
		value = 0
		scope:actor = {
			domicile ?= {
				if = {
					limit = {
						has_domicile_parameter = celestial_invite_to_movement_acceptance_1
					}
					add = estate_invite_to_movement_acceptance_1_value
				}
				else_if = {
					limit = {
						has_domicile_parameter = celestial_invite_to_movement_acceptance_2
					}
					add = estate_invite_to_movement_acceptance_2_value
				}
				else_if = {
					limit = {
						has_domicile_parameter = celestial_invite_to_movement_acceptance_3
					}
					add = estate_invite_to_movement_acceptance_3_value
				}
				else_if = {
					limit = {
						has_domicile_parameter = celestial_invite_to_movement_acceptance_4
					}
					add = estate_invite_to_movement_acceptance_4_value
				}
			}
		}
	}
	scope:actor = {
		domicile ?= {
			OR = {
				has_domicile_parameter = celestial_invite_to_movement_acceptance_1
				has_domicile_parameter = celestial_invite_to_movement_acceptance_2
				has_domicile_parameter = celestial_invite_to_movement_acceptance_3
				has_domicile_parameter = celestial_invite_to_movement_acceptance_4
			}
		}
	}
	desc = estate_buildings_with_value_desc
}
modifier = {
	add = {
		value = 10
		scope:recipient = {
			if = {
				limit = {
					has_trait = greedy
				}
				add = 10
			}
		}
	}
	scope:gift ?= yes
	exists = scope:recipient
	desc = SCHEME_WITH_GIFT
}
modifier = {
	add = {
		value = 20
		scope:recipient = {
			if = {
				limit = {
					has_trait = greedy
				}
				add = 10
			}
		}
	}
	scope:gift_sig
# … (cut here; the rest is in the file)

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

What happens

If they accept

  • The actors movement › Depending on participant group type:
  • change_merit = { value = miniscule_merit_gain add = scope:recipient.number_of_disciples }
  • If

    • The option “gift” is chosen

    Then

    • Pay 50 gold to the target
    • Stress and fulfillment impact: by trait: Greedy +20
  • If

    • The option “gift significant” is chosen

    Then

    • Pay 50 gold to the target
    • Stress and fulfillment impact: by trait: Greedy +40
  • If

    • The option “offer hook” is chosen

    Then

    • Stress and fulfillment impact: +20, and by trait: Paranoid +80
    • The character you target: Gain a Favor on you
  • If

    • The option “offer hook strong” is chosen

    Then

    • Stress and fulfillment impact: +80
    • The character you target: Gain a Oath Debt on you
  • If

    Then

    • Use a Hook on the target
  • If

    • The option “prestige” is chosen

    Then

    • add_prestige = { value = prestige_bribe_value multiply = -1 }
    • The character you target: Gain … Prestige
  • If

    • The option “piety” is chosen

    Then

    • add_piety = { value = piety_bribe_value multiply = -1 }
    • The character you target: Gain … Piety
  • If

    • The option “influence” is chosen

    Then

    • change_influence = { value = influence_bribe_value multiply = -1 }
    • The character you target: Influence changes
  • If

    • None of these

      • The new disciple: Has the new elder as elder
    • The new elder:
      • merit_level > scope:new_disciple.merit_level
      • num_of_relation_disciple < disciples_limit_value
      • Does not have the new disciple as disciple
      • The new disciple: Is an Adult

    Then

    • The new disciple:
      • If

        • The old elder is not the new disciple

        Then

      • set_relation_elder = scope:new_elder
    • The new elder:
  • If

    • scope:recipient.var:movement_power >= high_movement_power_value

    Then

    • Depending on top participant group:dynastic cycle:
      • When top participant group:dynastic cycle is situation:dynastic cycle.situation participant group:advancement movement:
        • If

          • title:h_china.holder ?= scope:actor.top_liege
          • Any character situation:
            • situation:dynastic_cycle ?= this
            • The current phase counts “Advancement Movement gained significant amount of Movement Power”

          Then

      • When top participant group:dynastic cycle is situation:dynastic cycle.situation participant group:expansion movement:
        • If

          • title:h_china.holder ?= scope:actor.top_liege
          • … (more in the script below)
      • … (more in the script below)

If they refuse

  • The character you target: You gains the opinion “Refused to Join My Movement” of them
  • The character you target:
    • If

      • Has you as elder

      Then

      • change_influence = { value = influence_bribe_value multiply = -0.5 }

Options when sending

  • Offer your Prestigious good wordTransfer … to the recipient
  • BribePay … to the recipient
  • Hefty BribePay … to the recipient
  • Offer a Hook on yourself
  • Offer a Strong Hook on yourself
  • Offer your Influential connectionsTransfer … to the recipient
  • Leverage your Pious reputationSpend … Piety to convince the recipient
  • Use a Hook

Events it fires: tgp_interaction_event.0030

• 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) (39 lines of game script)
is_available = top_participant_group:dynastic_cycle ?= {
	NOR = {
		participant_group_type = other_rulers
		participant_group_type = undecided_movement
	}
}
title:h_china.holder ?= top_liege
trigger_if = {
	limit = {
		is_ai = yes
	}
	OR = {
		this = top_liege
		house ?= {
			is_powerful_family = yes
		}
		any_relation = {
			is_ai = no
			type = disciple
		}
		house ?= {
			is_dominant_family = yes
		}
		situation:dynastic_cycle ?= {
			any_participant_group = {
				var:movement_leader ?= root
			}
		}
	}
}
is_shown = scope:recipient != title:h_china.holder
scope:recipient != scope:actor
scope:recipient = {
	top_participant_group:dynastic_cycle ?= {
		NOT = {
			participant_group_type = other_rulers
		}
	}
}

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

Can be sent when (is_valid…) (26 lines of game script)
trigger_if = {
	limit = {
		scope:actor = {
			top_participant_group:dynastic_cycle ?= {
				participant_group_type = hegemon_ruler
			}
		}
	}
	situation:dynastic_cycle.situation_participant_group:pro_hegemon_movement ?= {
		NOT = {
			participant_group_has_character = scope:recipient
		}
	}
}
situation:dynastic_cycle.situation_participant_group:undecided_movement ?= {
	NOT = {
		participant_group_has_character = scope:actor
	}
}
scope:actor = {
	top_participant_group:dynastic_cycle = {
		NOT = {
			participant_group_has_character = scope:recipient
		}
	}
}

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

Effects (on_send, on_accept, on_decline) (180 lines of game script)
on_accept = if = {
	limit = {
		scope:actor = title:h_china.holder
	}
	situation:dynastic_cycle ?= {
		situation_participant_group:pro_hegemon_movement = {
			save_scope_as = actors_movement
		}
	}
}
else = {
	situation:dynastic_cycle ?= {
		random_participant_group = {
			limit = {
				participant_group_has_character = scope:actor
			}
			save_scope_as = actors_movement
		}
	}
}
scope:actor = {
	send_interface_toast = {
		type = event_toast_effect_good
		title = celestial_ask_to_switch_movements_interaction_accept_tt
		left_icon = scope:recipient
		scope:actors_movement = {
			switch = {
				trigger = participant_group_type
				pro_hegemon_movement = {
					scope:recipient = {
						custom_tooltip = celestial_switch_movement_to_pro_hegemon_tt
						custom_tooltip = adds_movement_power_tt
						every_relation = {
							type = disciple
							custom = every_disciple_joins_movement
							custom_tooltip = celestial_switch_movement_to_pro_hegemon_tt
							custom_tooltip = every_disciple_adds_movement_power_tt
							if = {
								limit = {
									is_ai = yes
								}
								set_variable = {
									name = movement_member
									value = flag:pro_hegemon
								}
								set_variable = {
									name = persuaded_to_join_movement
									value = yes
								}
							}
							else = {
								send_interface_message = {
									type = send_interface_message
									title = celestial_ask_to_switch_movements_interaction_accept_tt
									left_icon = scope:recipient
									custom_tooltip = celestial_switch_movement_to_pro_hegemon_tt
								}
							}
						}
						set_variable = {
							name = movement_member
							value = flag:pro_hegemon
						}
						set_variable = {
							name = persuaded_to_join_movement
							value = yes
						}
					}
				}
				expansion_movement = {
					scope:recipient = {
						custom_tooltip = celestial_switch_movement_to_expansion_tt
						custom_tooltip = adds_movement_power_tt
						every_relation = {
							type = disciple
							custom = every_disciple_joins_movement
							custom_tooltip = celestial_switch_movement_to_expansion_tt
							custom_tooltip = every_disciple_adds_movement_power_tt
							if = {
								limit = {
									is_ai = yes
								}
								set_variable = {
									name = movement_member
									value = flag:expansion
								}
								set_variable = {
									name = persuaded_to_join_movement
									value = yes
								}
							}
							else = {
								send_interface_message = {
									type = send_interface_message
									title = celestial_ask_to_switch_movements_interaction_accept_tt
									left_icon = scope:recipient
									custom_tooltip = celestial_switch_movement_to_expansion_tt
								}
							}
						}
						set_variable = {
							name = movement_member
							value = flag:expansion
						}
						set_variable = {
							name = persuaded_to_join_movement
							value = yes
						}
					}
				}
				advancement_movement = {
					scope:recipient = {
						custom_tooltip = celestial_switch_movement_to_advancement_tt
						custom_tooltip = adds_movement_power_tt
						every_relation = {
							type = disciple
							custom = every_disciple_joins_movement
							custom_tooltip = celestial_switch_movement_to_advancement_tt
							custom_tooltip = every_disciple_adds_movement_power_tt
							if = {
								limit = {
									is_ai = yes
								}
								set_variable = {
									name = movement_member
									value = flag:advancement
								}
								set_variable = {
									name = persuaded_to_join_movement
									value = yes
								}
							}
							else = {
								send_interface_message = {
									type = send_interface_message
									title = celestial_ask_to_switch_movements_interaction_accept_tt
									left_icon = scope:recipient
									custom_tooltip = celestial_switch_movement_to_advancement_tt
								}
							}
						}
						set_variable = {
							name = movement_member
							value = flag:advancement
						}
						set_variable = {
							name = persuaded_to_join_movement
							value = yes
						}
					}
				}
				conservative_movement = {
					scope:recipient = {
						custom_tooltip = celestial_switch_movement_to_conservative_tt
						custom_tooltip = adds_movement_power_tt
						every_relation = {
							type = disciple
							custom = every_disciple_joins_movement
							custom_tooltip = celestial_switch_movement_to_conservative_tt
							custom_tooltip = every_disciple_adds_movement_power_tt
							if = {
								limit = {
									is_ai = yes
								}
								set_variable = {
									name = movement_member
									value = flag:conservative
								}
								set_variable = {
									name = persuaded_to_join_movement
									value = yes
								}
							}
							else = {
								send_interface_message = {
									type = send_interface_message
									title = celestial_ask_to_switch_movements_interaction_accept_tt
									left_icon = scope:recipient
									custom_tooltip = celestial_switc
# … (cut here; the rest is in the file)

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

Category
Friendly actions
Cost: Influence
from 100
In the menu
main list
ID
celestial_ask_to_switch_movements_interaction

Source: game/common/character_interactions/10_tgp_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?