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

Interaction · Vassal actions

Demand Council Position

No costAccepted automatically

Use a Hook to force the recipient to grant you a Council position of your choice

What you need

You

To send it

  • Is an Adult
  • Is not at war with the target
  • Not all of these

    • has_council_position = councillor_court_chaplain
    • Your rite: The rite has The Realm Priest or Court Chaplain have their seat for life
  • If

    a check the game hides

    Then

    • The target’s councillor: They can be fired from … Council

To see it in the menu

  • Is not a Councillor
  • If played by the AI:
  • Your liege:
    • Not all of these

      • Holds China
      • Government is Celestial
      • Their government has the government uses ministry budget flag
  • The target is not you
  • Is a direct vassal of the target
  • If

    a check the game hides

    Then

    • The target:
      • can_fire_position = yes

Demand Council Position is a vassal character interaction in Crusader Kings III. You need: Is an Adult and Is not at war with the target. Accepted automatically. Patch 1.20.1.2, from game/common/character_interactions/00_vassal_interactions.txt.

for a guide, post or blog
Quick answers (2)
What are the requirements for Demand Council Position in CK3?
You: Is an Adult and Is not at war with the target. (patch 1.20.1.2)
Will the AI accept Demand Council Position?
Yes: it is accepted automatically.

Will they accept?

The other character has no choice: the game accepts it automatically.

What happens

Effects

  • Stress and fulfillment impact: by trait: Content +20
  • The character you target:
    • assign_council_task = { target = scope:actor council_task = scope:council_task }
    • … … made a Councillor
  • If

    a check the game hides

    Then

    • Use a Hook on the target
  • If

    • You: Government is Clan
    • The character you target: Government is Clan
    • Your house is the target’s
    • If

      • You are not the target

      Then

      • You are not the target

    Then

    • Your house:
      • add_unity_value = { … }

    Else if

    • No
    • You: Government is Clan
    • Your house: Has you as house head
    • One of these

      • All of these

        • exists = scope:recipient.house
        • Your house is not the target’s
      • or

        The character you target: Is Lowborn

    Then

    • Your house:
      • add_unity_value = { … }

• 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) (23 lines of game script)
is_available = is_councillor = no
trigger_if = {
	limit = {
		is_ai = yes
	}
	is_councillor = no
	top_liege != this
}
liege ?= {
	tgp_has_access_to_ministry_trigger = no
}
is_shown = scope:recipient != scope:actor
scope:actor = {
	liege = scope:recipient
}
trigger_if = {
	limit = {
		exists = scope:target.councillor
	}
	scope:target = {
		can_fire_position = yes
	}
}

As written in game/common/character_interactions/00_vassal_interactions.txt.

Can be sent when (is_valid…) (21 lines of game script)
scope:actor = {
	custom_description = {
		text = has_usable_hook_or_council_rights_through_vassal_contract
		subject = scope:actor
		OR = {
			has_usable_hook = scope:recipient
			vassal_contract_has_flag = can_demand_council_seat
			vassal_contract_has_flag = can_demand_kurultai_seat
		}
	}
	is_adult = yes
	NOT = {
		is_at_war_with = scope:recipient
	}
	NAND = {
		has_council_position = councillor_court_chaplain
		rite = {
			rite_has_parameter = clerical_appointment_fixed
		}
	}
}

As written in game/common/character_interactions/00_vassal_interactions.txt.

Effects (on_send, on_accept, on_decline) (71 lines of game script)
on_accept = scope:target = {
	save_scope_as = council_task
}
scope:actor = {
	if = {
		limit = {
			NOR = {
				vassal_contract_has_flag = can_demand_council_seat
				vassal_contract_has_flag = can_demand_kurultai_seat
			}
		}
		save_scope_value_as = {
			name = used_hook
			value = yes
		}
	}
	block_firing_councillor_effect = {
		COURT_OWNER = scope:recipient
	}
	hidden_effect = {
		send_interface_toast = {
			type = event_toast_effect_good
			title = force_onto_council.actor.tt
			left_icon = scope:recipient
			custom_tooltip = force_onto_council.actor.tt.duration
		}
	}
	stress_and_fulfillment_impact = {
		content = minor_stress_impact_gain
	}
}
scope:recipient = {
	assign_council_task = {
		target = scope:actor
		council_task = scope:council_task
	}
	custom_tooltip = force_onto_council.desc.tt
	hidden_effect = {
		send_interface_toast = {
			type = event_toast_effect_neutral
			title = force_onto_council.recipient.tt
			left_icon = scope:actor
			if = {
				limit = {
					exists = scope:used_hook
				}
				show_as_tooltip = {
					scope:actor = {
						use_hook = scope:recipient
					}
				}
			}
			custom_tooltip = force_onto_council.recipient.tt.duration
		}
	}
}
scope:actor = {
	if = {
		limit = {
			exists = scope:used_hook
		}
		use_hook = scope:recipient
	}
}
add_clan_unity_interaction_effect = {
	CHARACTER = scope:actor
	TARGET = scope:recipient
	VALUE = medium_unity_loss
	DESC = clan_unity_forced_unto_council.desc
	REVERSE_NON_HOUSE_TARGET = no
}

As written in game/common/character_interactions/00_vassal_interactions.txt.

Category
Vassal actions
In the menu
under More…
ID
force_onto_council

Source: game/common/character_interactions/00_vassal_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?