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

Scripted effect

struggle_cb_title_transfer

struggle_cb_title_transfer = yes

game/common/scripted_effects/00_war_effects.txt, line 927 (78 lines). No parameters.

struggle_cb_title_transfer is a scripted effect in Crusader Kings III, written at line 927 of its file. It takes no parameters: struggle_cb_title_transfer = yes. The game's script calls it in 1 place, among them Struggle Clash (casus belli). Patch 1.20.1.2, from game/common/scripted_effects/00_war_effects.txt.

What it does

  • Every in de jure hierarchy:
    • Where:
      • Title tier exactly County
      • Their holder:
        • One of these

          • this = scope:defender
          • or

            target_is_liege_or_above = scope:defender
    • continue = { tier > tier_county }
  • One in list, picked in order › Otherwise:
    • Every held county:
      • remove_from_list = titles_taken
    • Every sub realm county:
      • remove_from_list = titles_taken

• 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 (78 lines of game script)
struggle_cb_title_transfer = {
	save_scope_as = target_title # For the vassalization trigger.

	# Compile a list of all counties in the kingdom we will take from the defender.
	every_in_de_jure_hierarchy = {
		continue = {
			tier > tier_county
		}
		limit = {
			tier = tier_county

			# Current holder must be a (sub)vassal of the defender (no poaching titles from 3rd parties!)
			holder ?= {
				OR = {
					this = scope:defender
					target_is_liege_or_above = scope:defender
				}
			}
		}
		add_to_list = titles_taken
	}

	every_in_list = {
		list = target_titles
		limit = {
			tier = tier_county
			holder ?= {
				highest_held_title_tier < scope:attacker.highest_held_title_tier
				OR = {
					this = scope:defender
					target_is_liege_or_above = scope:defender
				}
				any_sub_realm_county = {
					count = all
					is_in_list = titles_taken
				}
			}
		}
		holder = {
			if = {
				limit = {
					NOT = { is_in_list = potential_vassals }
				}
				add_to_list = potential_vassals
			}
		}
	}

	ordered_in_list = {
		list = potential_vassals
		order_by = highest_held_title_tier
		max = 99
		check_range_bounds = no

		if = {
			# If a liege has already been added to the vassalization list, skip us (we will remain our liege's vassal.)
			limit = {
				save_temporary_scope_as = this_vassal
				any_in_list = {
					list = vassals_taken
					target_is_vassal_or_below = scope:this_vassal
				}
			}
		}
		else = {
			# Flag this character to be vassalized instead of usurped.
			add_to_list = vassals_taken

			# Remove the counties this vassal holds from the seized title list (the vassal gets to keep their land when switching allegiance!)
			every_held_county = {
				remove_from_list = titles_taken
			}
			every_sub_realm_county = {
				remove_from_list = titles_taken
			}
		}
	}
}

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

Where it is used

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

Casus belli (1)

Source: game/common/scripted_effects/00_war_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?