Scripted effect
offer_fealty_interaction_effect
offer_fealty_interaction_effect = yesgame/common/scripted_effects/00_interaction_effects.txt, line 3072 (101 lines). No parameters.
offer_fealty_interaction_effect is a scripted effect in Crusader Kings III, written at line 3072 of its file. It takes no parameters: offer_fealty_interaction_effect = yes. The game's script calls it in 5 places, among them Move to Realm (interaction), Swear Fealty (interaction) and After Rain Comes the Sun (event tgp_dynastic_cycle.0072). Its body carries 11 texts of the game's own for the player. Patch 1.20.1.2, from game/common/scripted_effects/00_interaction_effects.txt.
What it does
scope:puppet_or_actor:change_liege = { liege = scope:recipient change = scope:change }- Stress and fulfillment impact: by trait: Ambitious +40, Arrogant +40
scope:puppet_or_actor:- If government is Feudal:
If
scope:high_obligations = yes
Then
- Vassal Contract starts with High Taxes
- Vassal Contract starts with High Levy Contribution
Else if
scope:low_obligations = yes
Then
- Vassal Contract starts with Low Taxes
- Vassal Contract starts with Low Levy Contribution
Else if
scope:religious_taxation = yes
Then
- Vassal Contract starts with High Taxes
- Vassal Contract starts with Normal Levy Contribution
If
- scope:recipient.faith: Has a Doctrine or Tenet with Unlocks the Jizya Vassal Contract and Tax Decree
Then
- Vassal Contract starts with Enforced Jizya Status
Otherwise
- Vassal Contract starts with Religiously Protected
Otherwise
- Vassal Contract starts with Normal Taxes
- Vassal Contract starts with Normal Levy Contribution
- Else, if all of these hold:
- Conditions:
- Government is Clan
scope:religious_exemption_clan = yes
- Then: Vassal Contract starts with Religiously Protected
- Conditions:
- If government is Feudal:
• 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 (101 lines of game script)
offer_fealty_interaction_effect = {
create_title_and_vassal_change = {
type = swear_fealty
save_scope_as = change
}
scope:puppet_or_actor = {
change_liege = {
liege = scope:recipient
change = scope:change
}
stress_and_fulfillment_impact = {
ambitious = medium_stress_impact_gain
arrogant = medium_stress_impact_gain
}
}
resolve_title_and_vassal_change = scope:change
scope:puppet_or_actor = {
# Special terms for feudal contracts
if = {
limit = {
government_has_flag = government_is_feudal
}
if = {
limit = { scope:high_obligations = yes }
hidden_effect = {
if = {
limit = { top_liege != this } # To avoid errors during tooltip generation (prior to the contract being generated)
vassal_contract_set_obligation_level = { type = feudal_government_taxes level = 3 }
vassal_contract_set_obligation_level = { type = feudal_government_levies level = 3 }
}
}
custom_tooltip = high_obligations_taxes
custom_tooltip = high_obligations_levies
}
else_if = {
limit = { scope:low_obligations = yes }
hidden_effect = {
if = {
limit = { top_liege != this } # To avoid errors during tooltip generation (prior to the contract being generated)
vassal_contract_set_obligation_level = { type = feudal_government_taxes level = 1 }
vassal_contract_set_obligation_level = { type = feudal_government_levies level = 1 }
}
}
custom_tooltip = low_obligations_taxes
custom_tooltip = low_obligations_levies
}
else_if = {
limit = { scope:religious_taxation = yes }
hidden_effect = {
if = {
limit = { top_liege != this } # To avoid errors during tooltip generation (prior to the contract being generated)
vassal_contract_set_obligation_level = { type = feudal_government_taxes level = 3 }
vassal_contract_set_obligation_level = { type = feudal_government_levies level = 2 }
vassal_contract_set_obligation_level = { type = religious_rights level = 1 }
}
}
custom_tooltip = high_obligations_taxes
custom_tooltip = normal_obligations_levies
if = {
limit = { scope:recipient.faith = { has_doctrine_parameter = unlock_jizya_contract } }
custom_tooltip = jizya_religious_protection_tt
}
else = { custom_tooltip = religious_protection_tt }
}
else = {
hidden_effect = {
if = {
limit = { top_liege != this } # To avoid errors during tooltip generation (prior to the contract being generated)
vassal_contract_set_obligation_level = { type = feudal_government_taxes level = 2 }
vassal_contract_set_obligation_level = { type = feudal_government_levies level = 2 }
}
}
custom_tooltip = normal_obligations_taxes
custom_tooltip = normal_obligations_levies
}
}
else_if = {
limit = {
government_has_flag = government_is_clan
scope:religious_exemption_clan = yes
}
hidden_effect = {
if = {
limit = { top_liege != this } # To avoid errors during tooltip generation (prior to the contract being generated)
vassal_contract_set_obligation_level = { type = religious_rights level = 1 }
}
}
custom_tooltip = religious_protection_tt
}
}
# Struggle catalysts.
hidden_effect = {
fp3_struggle_apply_independent_vassalage_catalyst_effect = {
NEW_LIEGE = scope:recipient
NEW_VASSAL = scope:puppet_or_actor
}
}
}As written in game/common/scripted_effects/00_interaction_effects.txt.
Where it is used
Every place in common/, events/ and history/ that calls offer_fealty_interaction_effect.
Character interactions (2)
Events (3)
- After Rain Comes the Sun
tgp_dynastic_cycle.0072 - char_interaction.0010
- Heaven's Favorite …
tgp_dynastic_cycle.0062
Source: game/common/scripted_effects/00_interaction_effects.txt and every file of common/, events/ and history/ that calls it, Crusader Kings III 1.20.1.2.