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

Scripted effect · Friends and Foes files

house_feud_start_effect

house_feud_start_effect = { ACTOR = … ATTACKER = … REASON = … TARGET = … VICTIM = … }

game/common/scripted_effects/03_bp1_scripted_effects.txt, line 6 (240 lines). Parameters: $ACTOR$, $ATTACKER$, $REASON$, $TARGET$, $VICTIM$.

house_feud_start_effect is a scripted effect in Crusader Kings III, in the Friends and Foes files, written at line 6 of its file. A call passes 5 parameters: ACTOR, ATTACKER, REASON, TARGET and VICTIM. The game's script calls it in 25 places, among them … True … (event bp1_house_feud.0006), A … Enemy (event bp1_house_feud.0004) and A … Honor (event bp1_house_feud.0013). Patch 1.20.1.2, from game/common/scripted_effects/03_bp1_scripted_effects.txt.

The comment above it in the file

Start Feud, set variables, modifiers, relations, and stress

What it does

  • If

    Then

    • scope:starter_house_head › Their house:
      • set_house_relation = { … }
    • scope:starter_house_head:
    • scope:relation › Every relation house › Every house member:
      • Where: Is played by a person
      • scope:starter_house_head:
        • If

          • has_relation_nemesis = scope:house_feud_rival

          Then

          Otherwise

    • scope:starter_house_head:
      • create_character_memory = { … }

• 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)
house_feud_start_effect = {
	# Save scopes
	$ACTOR$.house.house_head = { save_scope_as = starter_house_head }
	$TARGET$.house.house_head = { save_scope_as = house_feud_rival }
	$ATTACKER$ = { save_scope_as = house_feud_attacker }
	$VICTIM$ = { save_scope_as = house_feud_victim }
	# Save extra scopes if relevant
	save_scope_value_as = {
		name = house_feud_reason
		value = flag:$REASON$
	}
	if = {
		limit = {
			scope:house_feud_reason = flag:competing_claim
			NOT = { exists = scope:house_feud_claim }
		}
		scope:house_feud_victim = {
			ordered_claim = {
				limit = { any_claimant = { this = scope:house_feud_attacker } }
				order_by = tier
				save_scope_as = house_feud_claim
			}
		}
	}
	if = {
		limit = {
			scope:starter_house_head.house != scope:house_feud_rival.house
			house_relation_is_valid_to_start_trigger = {
				HOUSE = scope:starter_house_head.house
				OTHER_HOUSE = scope:house_feud_rival.house
			}
		}
		# Save target House for reference
		scope:starter_house_head ?= {
			house = {
				set_house_relation = {
					target = scope:house_feud_rival.house
					level = feud
					description = house_relation_reason_feud_$REASON$
					save_scope_as = relation
				}
			}
			scope:relation ?= {
				set_variable = {
					name = house_feud_cooldown
					years = 25
				}
			}
		}
		scope:starter_house_head ?= {
			# Relations: Nemesis if already Rivals, else Rival
			if = {
				limit = {
					has_relation_rival = scope:house_feud_rival
					NOT = { has_relation_nemesis = scope:house_feud_rival }
					can_set_relation_nemesis_trigger = { CHARACTER = scope:house_feud_rival }
				}
				set_relation_nemesis = {
					reason = nemesis_house_feud
					copy_reason = rival
					target = scope:house_feud_rival
				}
			}
			else_if = {
				limit = {
					NOT = { has_relation_rival = scope:house_feud_rival }
				}
				set_relation_rival = {
					target = scope:house_feud_rival
					reason = rival_house_feud_start_of_feud
				}
			}
			# Stress
			stress_and_fulfillment_impact = { vengeful = minor_stress_impact_loss }
			house_feud_forgiving_stress_effect = yes
		}
		# Save reasons for reference
		scope:relation ?= {
			# Save Feud attacker
			set_variable = { name = house_feud_attacker value = scope:house_feud_attacker }
			# Save Feud victim
			set_variable = { name = house_feud_victim value = scope:house_feud_victim }
			set_variable = { name = house_feud_house_1 value = scope:house_feud_attacker.house }
			set_variable = { name = house_feud_house_2 value = scope:house_feud_victim.house }
			# Save Feud starters
			set_variable = { name = house_feud_house_1_first_head value = scope:starter_house_head }
			set_variable = { name = house_feud_house_2_first_head value = scope:house_feud_rival }
			set_variable = { name = house_feud_house_1_score value = 0 }
			set_variable = { name = house_feud_house_2_score value = 0 }
			# Save start reason flavor
			set_variable = { name = house_feud_reason value = flag:$REASON$ }
			# Move starting score/save flavor if relevant
			if = {
				limit = { exists = var:house_feud_reason }
				switch = {
					trigger = var:house_feud_reason
					flag:head_killed = {
						change_variable = { name = house_feud_house_1_score add = house_feud_medium_counter_value }
					}
					flag:head_skull_sent = {
						change_variable = { name = house_feud_house_1_score add = house_feud_medium_counter_value }
					}
					flag:family_killed = {
						change_variable = { name = house_feud_house_1_score add = house_feud_medium_counter_value }
					}
					flag:head_cuckolded = {
						change_variable = { name = house_feud_house_1_score add = house_feud_minor_counter_value }
					}
					flag:family_cuckolded = {
						change_variable = { name = house_feud_house_1_score add = house_feud_minor_counter_value }
					}
					flag:competing_claim = {
						set_variable = { name = house_feud_title value = scope:house_feud_claim }
					}
					flag:head_tortured = {
						if = {
							limit = {
								scope:house_feud_victim = { has_character_flag = house_feud_blinding_flag }
							}
							set_variable = { name = house_feud_reason value = flag:head_blinded }

As written in game/common/scripted_effects/03_bp1_scripted_effects.txt.

The first 120 of its 240 lines; the rest is in game/common/scripted_effects/03_bp1_scripted_effects.txt from line 6.

Where it is used

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

Character interactions (1)

  • Impact House Relation

Events (19)

13 more

Scripted effects inside an event file (1)

  • mpo_nomad_events_1011_heir_resents_effect

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