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

ecumenical_council_apply_debate_outcome_effect

ecumenical_council_apply_debate_outcome_effect = yes

game/common/scripted_effects/pam_ecumenical_council_effects.txt, line 508 (276 lines). No parameters.

ecumenical_council_apply_debate_outcome_effect is a scripted effect in Crusader Kings III, in the By God Alone files, written at line 508 of its file. It takes no parameters: ecumenical_council_apply_debate_outcome_effect = yes. The game's script calls it in 2 places, among them The Council Votes (event ecumenical_council_events.0080) and ecumenical_council_set_proposal_effect (scripted effect). Its body carries 2 texts of the game's own for the player. Patch 1.20.1.2, from game/common/scripted_effects/pam_ecumenical_council_effects.txt.

The comment above it in the file

Applies the outcome of a passed debate vote to the host's faith.
scope:activity.var:current_topic holds the tenet/doctrine being debated.
scope:activity.var:current_debate_proposal holds the proposed change.

What it does

  • If

    Then

    • If

      • One of these

        • scope:activity.var:current_debate_proposal ?= flag:permit
        • or

          scope:activity.var:current_debate_proposal ?= flag:prohibit
        • or

          scope:activity.var:current_debate_proposal ?= flag:learn
        • or

          scope:activity.var:current_debate_proposal ?= flag:make_core
      • None of these

      Then

      • If ecumenical council tenet current acceptance more than -2–2:
      • Else, if all of these hold:

      Else if

      • scope:activity.var:current_debate_proposal ?= flag:doctrine_change

      Then

      • If

        • One of these

          • rite:roman_rite = { rite_has_doctrine = scope:activity.var:current_topic }
          • or

            rite:byzantine_rite = { rite_has_doctrine = scope:activity.var:current_topic }

        Then

  • If

    • One of these

      • scope:activity.var:current_debate_proposal ?= flag:permit
      • or

        scope:activity.var:current_debate_proposal ?= flag:prohibit
      • or

        scope:activity.var:current_debate_proposal ?= flag:learn
      • or

        scope:activity.var:current_debate_proposal ?= flag:make_core

    Then

    Else if

    • One of these

      • exists = scope:ec_proposal_doctrine
      • or

        scope:activity.var:current_debate_proposal ?= flag:doctrine_change

    Then

    • If

      a check the game hides

      Then

      • scope:host.faith: ⟨faith⟩ adopts …

• 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)
ecumenical_council_apply_debate_outcome_effect = {
	# Must stay above set_tenet_status so pre-change standing is readable
	# Tenet demotion and make_core swap are if/else_if so make_core cannot book twice
	if = {
		limit = {
			pam_great_schism_progress_can_change_trigger = yes
			scope:host.faith = faith:christian_faith
		}
		if = {
			# First/Second debate: tenet demotion of a schism-rite tenet counts; promotion books nothing
			limit = {
				# A doctrine ruling's tooltip preview still sees the previous debate's tenet flag
				NOT = { exists = scope:ec_proposal_doctrine }
				OR = {
					scope:activity.var:current_debate_proposal ?= flag:permit
					scope:activity.var:current_debate_proposal ?= flag:prohibit
					scope:activity.var:current_debate_proposal ?= flag:learn
					scope:activity.var:current_debate_proposal ?= flag:make_core
				}
				# Rulings that are dropped below must not book progress either
				exists = scope:activity.var:current_topic
				NOT = {
					scope:host.faith = {
						pam_faith_tenet_is_core_trigger = { TENET = scope:activity.var:current_topic }
					}
				}
			}
			if = {
				limit = {
					OR = {
						rite:roman_rite = { any_rite_tenet = { this = scope:activity.var:current_topic } }
						rite:byzantine_rite = { any_rite_tenet = { this = scope:activity.var:current_topic } }
					}
				}
				scope:activity.var:current_topic = {
					save_temporary_scope_as = tenet # Read by the acceptance script values
				}
			}
			if = {
				limit = {
					exists = scope:tenet
					ecumenical_council_tenet_current_acceptance_value > ecumenical_council_proposal_target_acceptance_value
				}
				pam_change_great_schism_progress_effect = {
					VALUE = pam_great_schism_progress_council_tenet_value
					TT = ecumenical_council_schism_progress_gain_tt
				}
			}
			# make_core already demotes the core you swapped out, so below the maximum there is nothing to record
			else_if = {
				limit = {
					scope:activity.var:current_debate_proposal ?= flag:make_core
					scope:host.faith = {
						pam_faith_is_at_core_tenet_cap_trigger = yes
					}
				}
				if = {
					limit = { exists = scope:activity.var:core_tenet_to_swap_2 }
					scope:activity.var:core_tenet_to_swap_2 = {
						save_temporary_scope_as = pam_gs_swapped_tenet
					}
				}
				else = {
					scope:activity.var:core_tenet_to_swap_1 ?= {
						save_temporary_scope_as = pam_gs_swapped_tenet
					}
				}
				if = {
					limit = {
						exists = scope:pam_gs_swapped_tenet
						OR = {
							rite:roman_rite = { any_rite_tenet = { this = scope:pam_gs_swapped_tenet } }
							rite:byzantine_rite = { any_rite_tenet = { this = scope:pam_gs_swapped_tenet } }
						}
					}
					pam_change_great_schism_progress_effect = {
						VALUE = pam_great_schism_progress_council_tenet_value
						TT = ecumenical_council_schism_progress_gain_tt
					}
				}
			}
		}
		else_if = {
			# Third debate: dropping a schism-rite doctrine counts; adopting one does not
			limit = {
				scope:activity.var:current_debate_proposal ?= flag:doctrine_change
				exists = scope:activity.var:third_debate_proposal
			}
			if = {
				limit = {
					OR = {
						rite:roman_rite = { rite_has_doctrine = scope:activity.var:current_topic }
						rite:byzantine_rite = { rite_has_doctrine = scope:activity.var:current_topic }
					}
				}
				pam_change_great_schism_progress_effect = {
					VALUE = pam_great_schism_progress_doctrine_value
					TT = ecumenical_council_schism_progress_gain_tt
				}
			}
		}
	}
	if = {
		# First/Second debate: the proposal is a tenet status change.
		limit = {
			NOT = { exists = scope:ec_proposal_doctrine }
			OR = {
				scope:activity.var:current_debate_proposal ?= flag:permit
				scope:activity.var:current_debate_proposal ?= flag:prohibit
				scope:activity.var:current_debate_proposal ?= flag:learn
				scope:activity.var:current_debate_proposal ?= flag:make_core
			}
		}
		if = {
			limit = {
				exists = scope:activity.var:core_tenet_to_swap_2
			}
			scope:activity.var:core_tenet_to_swap_2 = {
				save_scope_as = tenet_to_swap
			}

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

The first 120 of its 276 lines; the rest is in game/common/scripted_effects/pam_ecumenical_council_effects.txt from line 508.

Where it is used

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

Events (1)

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