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

Scripted effect

war_for_retraction_effect

war_for_retraction_effect = { LIEGE = … REBEL = … SUBVASSAL = … }

game/common/scripted_effects/00_interaction_effects.txt, line 1272 (117 lines). Parameters: $LIEGE$, $REBEL$, $SUBVASSAL$.

war_for_retraction_effect is a scripted effect in Crusader Kings III, written at line 1272 of its file. A call passes 3 parameters: LIEGE, REBEL and SUBVASSAL. The game's script calls it in 1 place, among them Retract Vassal (interaction). Patch 1.20.1.2, from game/common/scripted_effects/00_interaction_effects.txt.

What it does

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

“They” is whatever it runs on (the scope it is called in). The scripted triggers and effects it calls link to their own pages; $PARAMETERS$ stay as written: each call fills them in.

The script as written (117 lines of game script)
war_for_retraction_effect = {
	$LIEGE$ = { save_temporary_scope_as = liege_temp }
	$SUBVASSAL$ = { save_temporary_scope_as = subvassal_temp }
	$REBEL$ = {
		save_temporary_scope_as = rebel_temp
		save_scope_value_as = {
			name = war_for_retraction_flavour
			value = yes
		}
		start_war = {
			casus_belli = refused_liege_demand_war
			target = scope:liege_temp
		}
	}
	scope:liege_temp = {
		every_vassal = { #Vassals joining the rebel.
			limit = {
				vassal_would_join_rebel_faction_base_trigger = yes
				OR = {
					#Lovers and friends always back rebel (unless also lovers/friends of the liege)
					vassal_would_join_rebel_faction_relation_trigger = yes
					#Vassals that either like recipient or have high honor will rally if the liege is being tyrannical (taking away de jure vassal).
					AND = {
						# Special revocation checks
						scope:liege_temp = {
							NOR = {
								has_revoke_title_reason = scope:rebel_temp
								AND = {
									government_has_mechanic = administrative
									scope:rebel_temp = { is_governor = yes }
									trigger_if = {
										limit = { has_legitimacy = yes }
										meets_legitimacy_expectation_of = prev
									}
								}
							}
						}
						scope:rebel_temp = {
							any_held_title = { is_de_jure_liege_or_above_target = scope:subvassal_temp.primary_title }
						}
						# If they can't join a faction against the liege they should not revolt
						vassal_would_join_rebel_faction_tyranny_trigger = yes
					}
					#And finally, vassals that really hate their liege will join regardless (provided that they also do not hate rebel).
					AND = {
						OR = {
							opinion = {
								target = scope:rebel_temp
								value >= -25
							}
							AND = {
								has_game_rule = hard_difficulty
								scope:liege_temp = { is_ai = no }
								opinion = {
									target = scope:rebel_temp
									value >= -50
								}
							}
							AND = {
								has_game_rule = very_hard_difficulty
								scope:liege_temp = { is_ai = no }
								opinion = {
									target = scope:rebel_temp
									value >= -75
								}
							}
						}
						OR = {
							opinion = {
								target = scope:liege_temp
								value <= -40
							}
							AND = {
								has_game_rule = hard_difficulty
								scope:liege_temp = { is_ai = no }
								opinion = {
									target = scope:liege_temp
									value <= -20
								}
							}
							AND = {
								has_game_rule = very_hard_difficulty
								scope:liege_temp = { is_ai = no }
								opinion = {
									target = scope:liege_temp
									value <= 0
								}
							}
						}
					}
				}
				# TGP bloc members follow their leader
				trigger_if = {
					limit = { exists = house.house_confederation.leading_house.house_head }
					house.house_confederation.leading_house.house_head = this
				}
			}
			add_to_list = joining_vassals
		}
	}
	# Bloc members join despite legality
	bloc_member_join_war_effect = yes
	every_in_list = {
		list = joining_vassals
		vassal_join_rebel_war_effect = yes
	}
	every_player = {
		limit = { is_vassal_of = scope:liege_temp }
		trigger_event = char_interaction.0232
	}
	scope:rebel_temp = {
		add_opinion = {
			target = scope:liege_temp
			modifier = attempted_arrest_opinion
		}
	}
}

As written in game/common/scripted_effects/00_interaction_effects.txt.

Where it is used

Every place in common/, events/ and history/ that calls war_for_retraction_effect.

Character interactions (1)

Source: game/common/scripted_effects/00_interaction_effects.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.

Spotted a mistake on this page?