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

Scripted effect · By God Alone files

title_granting_controversy_effect

title_granting_controversy_effect = { INTERACTION = … TITLE = … }

game/common/scripted_effects/pam_effects.txt, line 2759 (434 lines). Parameters: $INTERACTION$, $TITLE$.

title_granting_controversy_effect is a scripted effect in Crusader Kings III, in the By God Alone files, written at line 2759 of its file. A call passes 2 parameters: INTERACTION and TITLE. The game's script calls it in 3 places, among them Grant Appointment (interaction), Grant Titles (interaction) and Grant Vassal (interaction). Patch 1.20.1.2, from game/common/scripted_effects/pam_effects.txt.

The comment above it in the file

Opinion loss with underlings who think they should get the title you're granting

What it does

  • $TITLE$ = { … }
  • If

    • $TITLE$ = { tier >= tier_kingdom }

    Then

    • Every in list:
      • Only some of them (the filter is in the script below)
      • If

        • has_strong_claim_on = $TITLE$

        Then

        Otherwise

    • Every in list:
      • Where › Any held title: Any in de jure hierarchy:
      • If

        • One of these

          • exists = scope:secondary_actor
          • or

            Any vassal or below:
            • this = scope:recipient

        Then

        Otherwise

    • Every in list:
      • Where › Any held title:
        • Title tier at least $TITLE$.tier minus 1
        • Any this title or de jure above:
      • If any liege or above: Opinion: Overlooked for De Jure Liege Title (-20)
      • Otherwise: Opinion: Overlooked for De Jure Liege Title (-30)

    Else if

    • One of these

      • $TITLE$ = { tier >= tier_duchy }
      • or

        exists = scope:secondary_actor

    Then

    • Every in list:
      • Where:
        • NOT = { has_strong_implicit_claim_on = $TITLE$ }
        • Any claim:
          • pressed = yes
      • Opinion: Spurned My Pressed Claim (-40)
    • Every in list:
      • Where:
        • NOT = { has_strong_implicit_claim_on = $TITLE$ }
        • Any claim:
          • pressed = no
      • Opinion: Spurned My Unpressed Claim (-20)
    • Every in list:
      • Where › Any held title: Any in de jure hierarchy:
      • If

        • One of these

          • exists = scope:secondary_actor
          • or

            Any vassal or below:
            • this = scope:recipient

        Then

        Otherwise

    • Every in list:
      • Where › Any held title:
        • Title tier at least $TITLE$.tier minus 1
        • Any this title or de jure above:
      • If any liege or above: Opinion: Overlooked for De Jure Liege Title (-15)
      • Otherwise: Opinion: Overlooked for De Jure Liege Title (-20)

    Else if

    • $TITLE$ = { tier >= tier_county }

    Then

    • Every in list:
      • Where:
        • Any held title: Any in de jure hierarchy:
        • No vassal or below:
      • Opinion: Denied De Jure Vassal Title (-15)

• 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 (120 lines of game script)
title_granting_controversy_effect = {
	#populate vassal list
	every_vassal_or_below = {
		limit = {
			NOR = {
				this = scope:recipient
				this = $TITLE$.holder
				is_in_list = eligible_vassals
			}
			highest_held_title_tier > tier_barony
			#Vassal granting should only annoy people who could actually receive vassal
			trigger_if = {
				limit = {
					exists = scope:secondary_actor
				}
				highest_held_title_tier > $TITLE$.tier
			}
			#Children can't hold titles in admin govs
			trigger_if = {
				limit = {
					government_has_mechanic = administrative
				}
				is_adult = yes
				#Admin de jure/neighboring thing is a pain in the butt but should be acknowledged
				trigger_if = {
					limit = {
						is_ruler = yes
					}
					any_held_title = {
						OR = {
							# The target title is part of your de jure structure
							is_de_jure_liege_or_above_target = $TITLE$
							target_is_de_jure_liege_or_above = $TITLE$
						}
					}
				}
			}
			scope:puppet_or_actor = {
				is_character_interaction_valid = {
					recipient = prev
					interaction = $INTERACTION$
				}
			}
			#Shouldn't lose opinion when giving title to their child or parent
			NOR = {
				AND = {
					is_child_of = scope:recipient
					is_heir_of = scope:recipient
				}
				AND = {
					is_parent_of = scope:recipient
					exists = scope:recipient.house
					house ?= scope:recipient.house
				}
			}
		}
		add_to_list = eligible_vassals
	}
	#Also show effect on courtier claimants you actually care about (IE your family members)
	$TITLE$ = {
		every_claimant = {
			limit = {
				NOT = { this = scope:recipient }
				NOT = {
					is_in_list = eligible_vassals
				}
				#Vassal granting should only annoy people who could actually receive vassal
				trigger_if = {
					limit = {
						exists = scope:secondary_actor
					}
					highest_held_title_tier > $TITLE$.tier
				}
				trigger_if = {
					limit = {
						is_ruler = no
					}
					OR = {
						rite = {
							rite_has_parameter = gender_equal_law
						}
						AND = {
							is_male = yes
							rite = {
								rite_has_parameter = male_dominated_law
							}
						}
						AND = {
							is_female = yes
							rite = {
								rite_has_parameter = female_dominated_law
							}
						}
					}
				}
				in_diplomatic_range = scope:puppet_or_actor
				NOT = { has_strong_implicit_claim_on = $TITLE$ }
				any_claim = {
					pressed = yes
					this = $TITLE$
				}
				any_liege_or_above = {
					this = scope:puppet_or_actor
				}
				OR = {
					any_close_family_member = {
						this = scope:puppet_or_actor
					}
					AND = {
						exists = scope:puppet_or_actor.house
						house ?= scope:puppet_or_actor.house
					}
					any_spouse = {
						this = scope:puppet_or_actor
					}
					has_any_good_relationship_with_character_trigger = { CHARACTER = scope:puppet_or_actor }
				}
				#Children can't hold titles in admin govs
				trigger_if = {
					limit = {

As written in game/common/scripted_effects/pam_effects.txt.

The first 120 of its 434 lines; the rest is in game/common/scripted_effects/pam_effects.txt from line 2759.

Where it is used

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

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