Interaction · Friendly actions
Ask to Join my Movement
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 }
- You › top_participant_group:dynastic_cycle:
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_liegeor
Your house:is_powerful_family = yes
or
Any relation: Is played by a personor
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.
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.
| Reason | Amount |
|---|---|
| Base | -30 |
| Their opinion of you × 0.5 | varies |
The recipient is your Disciplewhen
| +500 |
The recipient is … Leaderwhen
| -50 |
Was Convinced to Join their Movementwhen
| -50 |
Difference in Merit Rankwhen
| varies |
The recipient looks up to a Powerful Familywhen
| +15 |
The recipient dare not refuse a Dominant Familywhen
| +25 |
The recipient belong to a Powerful Familywhen
| -15 |
The recipient belong to a Dominant Familywhen
| -25 |
Difference in Level of Influencewhen
| varies |
The recipient is a Powerful Vassalwhen
| -10 |
You are a Powerful Vassalwhen
| +5 |
Easywhen
| +10 |
Very Easywhen
| +20 |
Scheming against my Rivalwhen
| -20 |
Scheming against my Nemesiswhen
| -1,000 |
Scheming against my Friendwhen
| +10 |
Scheming against my Best Friendwhen
| +1,000 |
Scheming against my Soulmatewhen
| +1,000 |
Loyal to spousewhen
| +10 |
Placate Movements Mandatewhen
| +10 |
| Wisdom | +10 |
Estate Buildingswhen
| varies |
I get Goldwhen
| varies |
I get Goldwhen
| varies |
I get a Hookwhen
| +20 |
I get a Strong Hookwhen
| +50 |
Weak Hook usedwhen
| +100 |
I get Prestigewhen
| varies |
I get Influencewhen
| varies |
I get Pietywhen
| 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:
- When participant group type is pro hegemon movement › The character you target:
- Changes allegiance to Pro-China Movement
- … Personal Movement Power: …
- Every … Disciple (…):
- Changes allegiance to Pro-China Movement
- Disciples' Personal Movement Power: …
- Otherwise: Changes allegiance to Pro-China Movement
- When participant group type is expansion movement › The character you target:
- Changes allegiance to Expansion Movement
- … Personal Movement Power: …
- Every … Disciple (…):
- Changes allegiance to Expansion Movement
- Disciples' Personal Movement Power: …
- Otherwise: Changes allegiance to Expansion Movement
- When participant group type is advancement movement › The character you target:
- Changes allegiance to Advancement Movement
- … Personal Movement Power: …
- Every … Disciple (…):
- Changes allegiance to Advancement Movement
- Disciples' Personal Movement Power: …
- Otherwise: Changes allegiance to Advancement Movement
- When participant group type is conservative movement › The character you target:
- Changes allegiance to Conservative Movement
- … Personal Movement Power: …
- Every … Disciple (…):
- Changes allegiance to Conservative Movement
- Disciples' Personal Movement Power: …
- Otherwise: Changes allegiance to Conservative Movement
- When participant group type is pro hegemon movement › The character you target:
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 “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_levelnum_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
remove_relation_elder = scope:old_elder- The old elder:
- Opinion: Refused to Be My Disciple (-50)
- Event tgp_interaction_event.0030
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
- Dynastic Cycle: Counts toward the situation's next phase: “Advancement Movement gained significant amount of Movement Power”
- 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)
- When top participant group:dynastic cycle is situation:dynastic cycle.situation participant group:advancement movement:
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.