Effects:修订间差异

本页面所适用的版本可能已经过时,最后更新于1.7
(翻译了效果的一点点内容,后续翻译我再研究研究)
70讨论 | 贡献
无编辑摘要
第1行: 第1行:
{{Version|1.5}}
{{Version|1.7}}
''' 效果(Effects)''' ,也称为''' 命令(commands)''' ,在脚本中用于更改通过范围和条件选择的目标。他们还能够遍历列表。
'''Effects''', also known as '''commands''', are used in [[scripting]] to alter the target that was selected via [[scope]]s and [[condition]]s. They are also able to iterate through lists.


它们出现在:
They appear in:
*command blocks (the ''immediate'' and ''option'' sections of [[events]], or similar: effect, creation_effect, gain_effect, success, ...)
*command blocks (the ''immediate'' and ''option'' sections of [[events]], or similar: effect, creation_effect, gain_effect, success, ...)
*[[scripted effect]]s, which can be used to group commands into re-usable macro.
*[[scripted effect]]s, which can reduce code duplication by grouping commands into re-usable macro.
Scripting commands are different from [[console commands]], though there may be equivalents between the two. Available effects depend on the current scope.
Scripting commands are different from [[console commands]], though there may be equivalents between the two. Also, any effect can be run in the console via the <code>effect</code> command.


== 效果条件式 ==
Available effects depend on the current scope.
用于提供基本条件语句的效果。(该段括号内容为译者所加,鉴于ck3官网原文有些模糊,这里引用一下钢4wiki对效果条件式的描述:首先,limit是一个AND的触发器,也就是其中的所有条件都需要满足,如果limit中的内容没有满足,就开始检测else_if,直到else最后这个触发器(除非你没有写)。这其中的每一个触发器只要有一个触发器中的内容全部满足就会触发)
 
== Control effects ==
These are the most important effects that are used to control the execution of other effects.
{| class="wikitable sortable" width="100%"
{| class="wikitable sortable" width="100%"
! width="15%" | 名称
! width="15%" | Name
! width="15%" | 描述
! width="15%" | Description
! width="25%" | 样例
! width="45%" | Usage
! width="20%" | Supported scopes
! width="10%" | Supported scopes
! width="20%" | Supported targets
! width="10%" | Supported targets
|-
|-
|if
|if
| 如果满足if条件内容<triggers>,则会执行if描述的效果<effects>
|Executes enclosed effects if limit criteria are met
|if = { limit = { <triggers> } <effects> }
|<pre>if = { limit = { <triggers> } <effects> }</pre>
|none
|none
|
|
|-
|-
|else_if
|else_if
| 如果满足if条件内容<triggers>,则会执行if描述的效果<effects> ,否则如果如果满足else_if条件内容<triggers>,则会执行else_if描述的效果<effects>
|Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met, and its own limit is met
|if = { limit = { <triggers> } <effects> }
|<pre>if = { limit = { <triggers> } <effects> }
else_if = { limit = { <triggers> } <effects> }
else_if = { limit = { <triggers> } <effects> }</pre>
|none
|none
|
|
|-
|-
|else
|else
| 如果满足if条件内容<triggers>,则会执行if描述的效果<effects> ,否则执行else描述的效果<effects>
|Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met
|if = { limit = { <triggers> } <effects> }
|<pre>if = { limit = { <triggers> } <effects> }
else = { <effects> }
else = { <effects> }</pre>
|none
|none
|
|
|}
== Dump Export ==
Current effects can be found in an '''''effects.log''''' file in your local data folder's script_documentation (defaults to "%USERPROFILE%\Documents\Paradox Interactive\Crusader Kings III\'''logs\'''").
{| class="wikitable sortable" style="font-size:90%; text-align:left; width:100%"
! Name !! Desc !! Example !! Scopes !! Target <!--!! Category-->
|-
|-
| add_house_artifact_claim
| while
| Adds a claim on the target artifact to the scoped house
| Repeats enclosed effects while limit criteria are met or until set iteration count is reached
| <pre></pre>
| <pre>while = {
| dynasty house
   limit = { <triggers> }
| artifact
   <effects>
}
while = { count = 3 <effects> }
Default max of 1000.</pre>
| none
|-
|-
| add_house_modifier
| switch
| Add a modifier to a house
| Switch on a trigger for the evaluation of another trigger with an optional fallback trigger.
| <pre>add_house_modifier = name
| <pre>switch = {
add_house_modifier = { modifier = name days/weeks/months/years = int }
trigger = simple_assign_trigger
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier</pre>
case_1 = { <effects> }
| dynasty house
case_2 = { <effects> }
case_n = { <effects> }
fallback = { <effects> }
}</pre>
| none
|-
|-
| every_house_claimed_artifact
| hidden_effect
| Iterate through all claimed artifacts of the scoped house
| Effect not shown in tooltips
| <pre>every_house_claimed_artifact = { limit = { <triggers> } <effects> }</pre>
| <pre>hidden_effect = { <effects> }</pre>
| dynasty house
| none
| artifact
|-
|-
| every_house_member
| show_as_tooltip
| Iterate through all house members
| Effect only shown in tooltips (but not executed)
| <pre>every_house_member = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| dynasty house
| none
| character
|-
|-
| ordered_house_claimed_artifact
| random
| Iterate through all claimed artifacts of the scoped house
| a random effect
| <pre>ordered_house_claimed_artifact = {
| <pre>random = { chance = X modifier = Y effects... }
limit = { <triggers> }
where X is a chance of the enclosed effects being fired and can be modified by optional value modifier list (AKA MTTH) Y</pre>
order_by = script_value
| none
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| dynasty house
| artifact
|-
|-
| ordered_house_member
| random_list
| Iterate through all house members
| a random list effect
| <pre>ordered_house_member = {
| <pre>random_list = {
limit = { <triggers> }
   X1 = {
order_by = script_value
     trigger = { ... }
position = int
     modifier/compare_modifier/opinion_modifier = Y1
min = int
     effect1
max = script_value
   }
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
   X2 = { ... }
<effects> }</pre>
   ...
| dynasty house
}
| character
Selects one effect from the list and fires it. The effects are weighted by numbers X1, X2... (the higher the number, the higher the chance of the effect being picked).
The chances can be modified by optional value modifier lists Y1, Y2... (AKA MTTH)</pre>
| none
|-
|-
| random_house_claimed_artifact
| custom_description
| Iterate through all claimed artifacts of the scoped house
| Wraps effects that get a custom description instead of the auto-generated one. See also custom_description_no_bullet.
| <pre>random_house_claimed_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>custom_description = {
| dynasty house
text = <effect_localization_key>
| artifact
subject = <optional subject scope> #defaults to current scope
object = <optional object scope>
value = <optional script value>
... effects ...
}</pre>
| none
|-
|-
| random_house_member
| custom_tooltip
| Iterate through all house members
| just a tooltip, the scope as subject (for grouping, localization).
| <pre>random_house_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>custom_tooltip = { text = key subject = scope (optional) <hidden effects> }
| dynasty house
or just custom_tooltip = key</pre>
| character
| none
|-
| remove_all_house_modifier_instances
| Remove all instances of a modifier from a house
| <pre>remove_all_house_modifier_instances = name</pre>
| dynasty house
|-
|-
| remove_house_artifact_claim
| send_interface_message
| Removes a claim on the target artifact from the scoped house
| Sends a message to the player playing the character in the scope and then executes any effects inside.
| <pre></pre>
| <pre>For the message text and tooltip, $EFFECT$ contains the text description of the effects in the past tense.
| dynasty house
And $DESC$ contains the text from the desc field.
| artifact
send_interface_message = {
|-
type = message_type # default: send_interface_message
| remove_house_modifier
title = LOCALIZATION # optional, otherwise takes it from the message type
| Remove a modifier from a house
desc = LOCALIZATION # optional, otherwise takes it from the message type
| <pre>remove_house_modifier = name</pre>
tooltip = LOCALIZATION # optional, otherwise takes it from the message type
| dynasty house
left_icon = scope:recipient # optional, character, artifact, or title
right_icon = scope:the_title # optional, character, artifact, or title
goto = scope:the_title # optional, character, barony title, province will add a goto button
# optional effects...
add_dread = 5
scope:someone = { add_gold = 5 }
}</pre>
| character
|-
|-
| set_house_name
| send_interface_toast
| Sets dynasty house name
| Sends a message to the player playing the character in the scope and then executes any effects inside.
| <pre>set_house_name=loc_key</pre>
| <pre>For the message text and tooltip, $EFFECT$ contains the text description of the effects in the past tense.
| dynasty house
And $DESC$ contains the text from the desc field.
send_interface_toast = {
type = message_type # default: send_interface_toast
title = LOCALIZATION # optional, otherwise takes it from the message type
desc = LOCALIZATION # optional, otherwise takes it from the message type
tooltip = LOCALIZATION # optional, otherwise takes it from the message type
left_icon = scope:recipient # optional, character, artifact, or title
right_icon = scope:the_title # optional, character, artifact, or title
goto = scope:the_title # optional, character, barony title, province will add a goto button
# optional effects...
add_dread = 5
scope:someone = { add_gold = 5 }
}</pre>
| character
|}
== Dump Export ==
Current effects can be found in an '''''effects.log''''' file in your local data folder's script_documentation (defaults to "%USERPROFILE%\Documents\Paradox Interactive\Crusader Kings III\'''logs\'''"), after you have run the <code>script_docs</code> [[console_commands|command]] in the debug console.
{| class="wikitable sortable" style="font-size:90%; text-align:left; width:100%"
! Name !! Desc !! Example !! Scopes !! Target <!--!! Category-->
|-
|-
| add_faction_discontent
| add_long_term_gold
| add_faction_discontent = X adds (or subtracts) discontent to the scope faction
| Add gold to 'long term' AI budget category, respecting maximums, overflow goes into Short Term budget. (gold will be created out of nowhere)
| <pre></pre>
| <pre>add_long_term_gold = X</pre>
| faction
| character
|
|-
|-
| destroy_faction
| add_reserved_gold
| the scoped faction is destroyed [yes|no]
| Add gold to 'reserved' AI budget category, respecting maximums, overflow goes into Short Term budget. (gold will be created out of nowhere)
| <pre></pre>
| <pre>add_reserved_gold = X</pre>
| faction
| character
|
|-
|-
| every_faction_county_member
| add_short_term_gold
| Iterate through all faction county members
| Add gold to 'short term' AI budget category, respecting maximums, overflow goes into Short Term budget. (gold will be created out of nowhere)
| <pre>every_faction_county_member = { limit = { <triggers> } <effects> }</pre>
| <pre>add_short_term_gold = X</pre>
| faction
| character
| landed title
|
|-
|-
| every_faction_member
| add_war_chest_gold
| Iterate through all faction character members
| Add gold to 'war chest' AI budget category, respecting maximums, overflow goes into Short Term budget. (gold will be created out of nowhere)
| <pre>every_faction_member = { limit = { <triggers> } <effects> }</pre>
| <pre>add_war_chest_gold = X</pre>
| faction
| character
| character
|
|-
|-
| faction_remove_war
| pay_reserved_gold
| Removes the war currently associated with the faction
| the scope character pays gold to the target character (from AI budget category 'reserved' first, then rest)
| <pre>faction_remove_war = yes</pre>
| <pre>pay_reserved_gold = { target = X gold = Y }</pre>
| faction
| character
|
|-
|-
| faction_start_war
| pay_reserved_income
| The scope faction starts the war agains their target.
| the scope character immediately pays gold corresponding to their income to the target character (AI budget 'reserved' first, then rest)
| <pre>faction_start_war = {
| <pre>pay_reserved_income = { target = X days/months/years = Y }</pre>
   title = [optional]
| character
}</pre>
|
| faction
|-
|-
| ordered_faction_county_member
| pay_war_chest_gold
| Iterate through all faction county members
| the scope character pays gold to the target character (from AI budget category 'war_chest' first, then rest)
| <pre>ordered_faction_county_member = {
| <pre>pay_war_chest_gold = { target = X gold = Y }</pre>
limit = { <triggers> }
| character
order_by = script_value
|
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| faction
| landed title
|-
|-
| ordered_faction_member
| pay_war_chest_income
| Iterate through all faction character members
| the scope character immediately pays gold corresponding to their income to the target character (AI budget 'war_chest' first, then rest)
| <pre>ordered_faction_member = {
| <pre>pay_war_chest_income = { target = X days/months/years = Y }</pre>
limit = { <triggers> }
| character
order_by = script_value
|
position = int
|-
min = int
| remove_reserved_gold
max = script_value
| removes gold from a character (from AI's 'reserved' budget first, then rest)
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|
<effects> }</pre>
| faction
| character
| character
|
|-
|-
| random_faction_county_member
| remove_war_chest_gold
| Iterate through all faction county members
| removes gold from a character (from AI's 'war chest' budget first, then rest)
| <pre>random_faction_county_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|
| faction
| character
| landed title
|
|-
|-
| random_faction_member
| create_character_memory
| Iterate through all faction character members
| Creates a memory for the character of a given type and participants plus an optional duration. Saved as scope:new_memory.
| <pre>random_faction_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>create_character_memory = { type = memory_type participants = { tag = scope } duration = { years = 3 } }</pre>
| faction
| character
| character
|
|-
| destroy_character_memory
| Destroys the targeted character memory, do not use the destroyed scope after calling this since it will have been removed
| <pre>destroy_character_memory = character_memory</pre>
| none
| character memory
|-
| equip_artifact_to_owner
| Makes the owner of the scoped artifact equip it, will fail if there already is an equipment in the artifact's slot.
|
| artifact
|
|-
| equip_artifact_to_owner_replace
| Makes the owner of the scoped artifact equip it, will replace the first held artifact if all slots of its type are filled.
|
| artifact
|
|-
|-
| remove_special_character
| unequip_artifact_from_owner
| Removes the special character for the scope faction
| Makes the owner of the scoped artifact unequip it.
|
| artifact
|
|-
| add_house_artifact_claim
| Adds a claim on the target artifact to the scoped house
| <pre></pre>
| <pre></pre>
| faction
| dynasty house
| artifact
|-
|-
| remove_special_title
| every_memory
| Removes the special character for the scope faction
| Iterate through all memories of a character
| <pre></pre>
| <pre>every_memory = { limit = { <triggers> } <effects> }</pre>
| faction
| character
| character memory
|-
|-
| set_special_character
| every_memory_participant
| Sets the special character for the scope faction
| Iterate through all participating character of a memory
| <pre></pre>
| <pre>every_memory_participant = { limit = { <triggers> } <effects> }</pre>
| faction
| character memory
| character
| character
|-
|-
| set_special_title
| every_powerful_vassal
| Sets the special title for the scope faction
| Iterate through the all powerful vassals of a character
| <pre></pre>
| <pre>every_powerful_vassal = { limit = { <triggers> } <effects> }</pre>
| faction
| landed title
|-
| add_attacker
| adds the target character to the scope war as an attacker
| <pre></pre>
| war
| character
| character
|-
| add_defender
| adds the target character to the scope war as a defender
| <pre></pre>
| war
| character
|-
| clear_claimant
| Removes the claimant from a war
| <pre></pre>
| war
|
|-
| end_war
| ends the war with the specified winner, end_war = attacker/defender/white_peace
| <pre></pre>
| war
|
|-
| every_war_attacker
| Iterate through all attackers in the war
| <pre>every_war_attacker = { limit = { <triggers> } <effects> }</pre>
| war
| character
| character
|-
|-
| every_war_defender
| move_budget_gold
| Iterate through all defenders in the war
| Move gold from one AI budget category to the other, will not move more than is available in the source budget or what can fit in the target budget
| <pre>every_war_defender = { limit = { <triggers> } <effects> }</pre>
| <pre>move_budget_gold = { gold = X from = Z to = Y }
| war
('budget_war_chest', 'budget_reserved', 'budget_short_term', 'budget_long_term')</pre>
| character
| character
|
|-
|-
| every_war_participant
| set_reserved_gold_maximum
| Iterate through all participants in the war
| Set the maximum (and also desired value) for the 'reserved' gold AI budget. This budget is saved up, even before the war chest budget. It will not correct the current gold in that budget to conform to the new maximum.
| <pre>every_war_participant = { limit = { <triggers> } <effects> }</pre>
| <pre>set_reserved_gold_maximum = X</pre>
| war
| character
| character
|
|-
|-
| ordered_war_attacker
| ordered_memory
| Iterate through all attackers in the war
| Iterate through all memories of a character
| <pre>ordered_war_attacker = {
| <pre>ordered_memory = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第283行: 第299行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| war
| character
| character
| character memory
|-
|-
| ordered_war_defender
| ordered_memory_participant
| Iterate through all defenders in the war
| Iterate through all participating character of a memory
| <pre>ordered_war_defender = {
| <pre>ordered_memory_participant = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第296行: 第312行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| war
| character memory
| character
| character
|-
|-
| ordered_war_participant
| ordered_powerful_vassal
| Iterate through all participants in the war
| Iterate through the all powerful vassals of a character
| <pre>ordered_war_participant = {
| <pre>ordered_powerful_vassal = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第309行: 第325行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| war
| character
| character
| character
|-
| random_memory
| Iterate through all memories of a character
| <pre>random_memory = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character memory
|-
|-
| random_war_attacker
| random_memory_participant
| Iterate through all attackers in the war
| Iterate through all participating character of a memory
| <pre>random_war_attacker = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_memory_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| war
| character memory
| character
| character
|-
|-
| random_war_defender
| random_powerful_vassal
| Iterate through all defenders in the war
| Iterate through the all powerful vassals of a character
| <pre>random_war_defender = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_powerful_vassal = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| war
| character
| character
|-
| random_war_participant
| Iterate through all participants in the war
| <pre>random_war_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| war
| character
| character
|-
|-
| remove_participant
| set_house_name_from_dynasty
| removes the target character from the scope war
| Sets dynasty house name from another dynasty's name
| <pre></pre>
| <pre>set_house_name_from_dynasty = dynasty</pre>
| war
| dynasty house
| character
| dynasty
|-
|-
| set_called_to
| set_house_name_from_house
| sets the target character as already called to the scope war
| Sets dynasty house name from another dynasty house's name
| <pre></pre>
| <pre>set_house_name_from_house = house</pre>
| war
| dynasty house
| character
| dynasty house
|-
|-
| set_casus_belli
| add_house_modifier
| sets the casus belli of the scope war
| Add a modifier to a house
| <pre></pre>
| <pre>add_house_modifier = name
| war
add_house_modifier = { modifier = name days/weeks/months/years = int }
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier</pre>
| dynasty house
|-
|-
| accept_invitation_for_character
| every_house_claimed_artifact
| accept a characters invitation to the activity
| Iterate through all claimed artifacts of the scoped house
| <pre></pre>
| <pre>every_house_claimed_artifact = { limit = { <triggers> } <effects> }</pre>
| activity
| dynasty house
| artifact
|-
| every_house_member
| Iterate through all house members
| <pre>every_house_member = { limit = { <triggers> } <effects> }</pre>
| dynasty house
| character
| character
|-
|-
| complete_activity
| ordered_house_claimed_artifact
| completes the activity, complete_activity = yes ends the activity and runs the on_complete effect, complete_activity = no ends the activity without running the effect
| Iterate through all claimed artifacts of the scoped house
| <pre></pre>
| <pre>ordered_house_claimed_artifact = {
| activity
limit = { <triggers> }
|
|-
| decline_invitation_for_character
| decline a characters invitation to the activity
| <pre></pre>
| activity
| character
|-
| every_activity_declined
| Iterate through all characters who declined an activity invite to a specific activity
| <pre>every_activity_declined = { limit = { <triggers> } <effects> }</pre>
| activity
| character
|-
| every_activity_invited
| Iterate through all characters who have unanswered invites to a specific activity
| <pre>every_activity_invited = { limit = { <triggers> } <effects> }</pre>
| activity
| character
|-
| every_participant
| Iterate through all participants in an activity
| <pre>every_participant = { limit = { <triggers> } <effects> }</pre>
| activity
| character
|-
| invite_character_to_activity
| invite a character to the activity
| <pre></pre>
| activity
| character
|-
| move_activity
| Moves activity and all members to given location
| <pre>move_activity = scope:province</pre>
| activity
| province
|-
| ordered_activity_declined
| Iterate through all characters who declined an activity invite to a specific activity
| <pre>ordered_activity_declined = {
limit = { <triggers> }
order_by = script_value
order_by = script_value
position = int
position = int
第406行: 第388行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| activity
| dynasty house
| character
| artifact
|-
|-
| ordered_activity_invited
| ordered_house_member
| Iterate through all characters who have unanswered invites to a specific activity
| Iterate through all house members
| <pre>ordered_activity_invited = {
| <pre>ordered_house_member = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第419行: 第401行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| activity
| dynasty house
| character
| character
|-
|-
| ordered_participant
| random_house_claimed_artifact
| Iterate through all participants in an activity
| Iterate through all claimed artifacts of the scoped house
| <pre>ordered_participant = {
| <pre>random_house_claimed_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| dynasty house
order_by = script_value
| artifact
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| activity
| character
|-
|-
| random_activity_declined
| random_house_member
| Iterate through all characters who declined an activity invite to a specific activity
| Iterate through all house members
| <pre>random_activity_declined = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_house_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| activity
| dynasty house
| character
| character
|-
|-
| random_activity_invited
| remove_all_house_modifier_instances
| Iterate through all characters who have unanswered invites to a specific activity
| Remove all instances of a modifier from a house
| <pre>random_activity_invited = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>remove_all_house_modifier_instances = name</pre>
| activity
| dynasty house
| character
|-
|-
| random_participant
| remove_house_artifact_claim
| Iterate through all participants in an activity
| Removes a claim on the target artifact from the scoped house
| <pre>random_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre></pre>
| activity
| dynasty house
| character
| artifact
|-
|-
| battle_event
| remove_house_modifier
| Makes a battle event show up in combat, and the combat result summary. The key is used for loc, with '_friendly' or '_enemy' appended. If this side is not the player's side, the two portraits get flipped. battle_event = { left_portrait = someone right_portrait = someone key = string }
| Remove a modifier from a house
| <pre></pre>
| <pre>remove_house_modifier = name</pre>
| combat side
| dynasty house
|-
|-
| every_side_commander
| set_house_name
| Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
| Sets dynasty house name
| <pre>every_side_commander = { limit = { <triggers> } <effects> }</pre>
| <pre>set_house_name=loc_key</pre>
| combat side
| dynasty house
| character
|-
|-
| every_side_knight
| add_faction_discontent
| Iterate through all knights
| add_faction_discontent = X adds (or subtracts) discontent to the scope faction
| <pre>every_side_knight = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| combat side
| faction
| character
|-
|-
| lose_combat
| destroy_faction
| ends the combat as the losing side (doesn't end the combat if evaluated to false)
| the scoped faction is destroyed [yes|no]
| <pre></pre>
| <pre></pre>
| combat side
| faction
|-
|-
| ordered_side_commander
| every_faction_county_member
| Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
| Iterate through all faction county members
| <pre>ordered_side_commander = {
| <pre>every_faction_county_member = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| faction
order_by = script_value
| landed title
position = int
|-
min = int
| every_faction_member
max = script_value
| Iterate through all faction character members
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre>every_faction_member = { limit = { <triggers> } <effects> }</pre>
<effects> }</pre>
| faction
| combat side
| character
| character
|-
|-
| ordered_side_knight
| faction_remove_war
| Iterate through all knights
| Removes the war currently associated with the faction
| <pre>ordered_side_knight = {
| <pre>faction_remove_war = yes</pre>
| faction
|
|-
| faction_start_war
| The scope faction starts the war agains their target.
| <pre>faction_start_war = {
   title = [optional]
}</pre>
| faction
|
|-
| ordered_faction_county_member
| Iterate through all faction county members
| <pre>ordered_faction_county_member = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第500行: 第488行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| combat side
| faction
| landed title
|-
| ordered_faction_member
| Iterate through all faction character members
| <pre>ordered_faction_member = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| faction
| character
| character
|-
|-
| random_side_commander
| random_faction_county_member
| Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
| Iterate through all faction county members
| <pre>random_side_commander = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_faction_county_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| combat side
| faction
| character
| landed title
|-
|-
| random_side_knight
| random_faction_member
| Iterate through all knights
| Iterate through all faction character members
| <pre>random_side_knight = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_faction_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| combat side
| faction
| character
| character
|-
|-
| win_combat
| remove_special_character
| ends the combat as the winning side (doesn't end the combat if evaluated to false)
| Removes the special character for the scope faction
| <pre></pre>
| <pre></pre>
| combat side
| faction
|-
|-
| add_from_contribution_attackers
| remove_special_title
| Adds prestige, gold and piety based on contribution to allied attackers. parameters: prestige, gold, piety.
| Removes the special character for the scope faction
| <pre></pre>
| <pre></pre>
| casus belli
| faction
|-
|-
| add_from_contribution_defenders
| set_special_character
| Adds prestige, gold and piety based on contribution to allied defenders. parameters: prestige, gold, piety.
| Sets the special character for the scope faction
| <pre></pre>
| <pre></pre>
| casus belli
| faction
| character
|-
|-
| every_target_title
| set_special_title
| Iterate through all casus belli's target titles
| Sets the special title for the scope faction
| <pre>every_target_title = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| casus belli
| faction
| landed title
| landed title
|-
|-
| ordered_target_title
| add_attacker
| Iterate through all casus belli's target titles
| adds the target character to the scope war as an attacker
| <pre>ordered_target_title = {
| <pre></pre>
| war
| character
|-
| add_defender
| adds the target character to the scope war as a defender
| <pre></pre>
| war
| character
|-
| clear_claimant
| Removes the claimant from a war
| <pre></pre>
| war
|
|-
| end_war
| ends the war with the specified winner, end_war = attacker/defender/white_peace
| <pre></pre>
| war
|
|-
| every_war_attacker
| Iterate through all attackers in the war
| <pre>every_war_attacker = { limit = { <triggers> } <effects> }</pre>
| war
| character
|-
| every_war_defender
| Iterate through all defenders in the war
| <pre>every_war_defender = { limit = { <triggers> } <effects> }</pre>
| war
| character
|-
| every_war_participant
| Iterate through all participants in the war
| <pre>every_war_participant = { limit = { <triggers> } <effects> }</pre>
| war
| character
|-
| ordered_war_attacker
| Iterate through all attackers in the war
| <pre>ordered_war_attacker = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第549行: 第592行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| casus belli
| war
| landed title
| character
|-
|-
| random_target_title
| ordered_war_defender
| Iterate through all casus belli's target titles
| Iterate through all defenders in the war
| <pre>random_target_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_war_defender = {
| casus belli
limit = { <triggers> }
| landed title
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| war
| character
|-
|-
| add_loot
| ordered_war_participant
| Adds loot to the currently scoped raiding army.
| Iterate through all participants in the war
| <pre>Usage:
| <pre>ordered_war_participant = {
add_loot = VALUE</pre>
limit = { <triggers> }
| army
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| war
| character
|-
|-
| assign_commander
| random_war_attacker
| Assign a commander for the scoped army
| Iterate through all attackers in the war
| <pre>set_commander = scope:a_character</pre>
| <pre>random_war_attacker = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| army
| war
| character
| character
|-
|-
| remove_commander
| random_war_defender
| Removes the currently assigned commander from the scoped army
| Iterate through all defenders in the war
| <pre>remove_commander = yes</pre>
| <pre>random_war_defender = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| army
| war
| character
|-
|-
| set_army_location
| random_war_participant
| Teleports the army to the given location. Cannot be done while in combat. Will cause combat to happen with this army as the attacker if there's hostiles in the target
| Iterate through all participants in the war
| <pre>set_army_location = scope:province</pre>
| <pre>random_war_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| army
| war
| province
| character
|-
|-
| add_artifact_history
| remove_participant
| Adds a history entry to the artifact, could for example be a reforging event
| removes the target character from the scope war
| <pre>
| <pre></pre>
type = enum - history entry type
| war
date = jomini date - when this historical event took place
| character
actor = character - who is the actor in the event, for example who created it
recipient = character - who is the recipient in the event, for example who was the artifact given to
location = province - where the event took place</pre>
| artifact
|-
|-
| add_artifact_modifier
| set_called_to
| Adds a static modifier to the given artifact
| sets the target character as already called to the scope war
| <pre>add_artifact_modifier = modifier_name
| <pre></pre>
NOTE: does not support duration!</pre>
| war
| artifact
| character
|-
|-
| add_artifact_title_history
| set_casus_belli
| Adds the title history of the given title to the scoped artifacts history
| sets the casus belli of the scope war
| <pre>
| <pre></pre>
add_artifact_title_history = {}
| war
target = title scope - landed title to take history from
date = game date - from which date onwards to copy historical entries</pre>
| artifact
|-
|-
| add_durability
| accept_invitation_for_character
| Add this much to the artifacts durability
| accept a characters invitation to the activity
| <pre></pre>
| <pre></pre>
| artifact
| activity
| character
|-
|-
| clear_artifact_modifiers
| complete_activity
| Removes all modifiers from the scoped artifact
| completes the activity, complete_activity = yes ends the activity and runs the on_complete effect, complete_activity = no ends the activity without running the effect
| <pre>clear_artifact_modifiers = yes</pre>
| <pre></pre>
| artifact
| activity
|-
|-
| copy_artifact_modifiers
| decline_invitation_for_character
| Copies the modifiers of the target artifact. Does *not* clear out existing modifiers
| decline a characters invitation to the activity
| <pre>copy_artifact_modifiers = target_artifact</pre>
| <pre></pre>
| artifact
| activity
| artifact
| character
|-
| every_activity_declined
| Iterate through all characters who declined an activity invite to a specific activity
| <pre>every_activity_declined = { limit = { <triggers> } <effects> }</pre>
| activity
| character
|-
| every_activity_invited
| Iterate through all characters who have unanswered invites to a specific activity
| <pre>every_activity_invited = { limit = { <triggers> } <effects> }</pre>
| activity
| character
|-
| every_participant
| Iterate through all participants in an activity
| <pre>every_participant = { limit = { <triggers> } <effects> }</pre>
| activity
| character
|-
|-
| every_artifact_claimant
| invite_character_to_activity
| Iterate through all characters with a claim on the scoped artifact
| invite a character to the activity
| <pre>every_artifact_claimant = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| artifact
| activity
| character
| character
|-
|-
| every_artifact_house_claimant
| move_activity
| Iterate through all dynasty houses with a claim on the scoped artifact
| Moves activity and all members to given location
| <pre>every_artifact_house_claimant = { limit = { <triggers> } <effects> }</pre>
| <pre>move_activity = scope:province</pre>
| artifact
| activity
| dynasty house
| province
|-
|-
| ordered_artifact_claimant
| ordered_activity_declined
| Iterate through all characters with a claim on the scoped artifact
| Iterate through all characters who declined an activity invite to a specific activity
| <pre>ordered_artifact_claimant = {
| <pre>ordered_activity_declined = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第650行: 第715行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| artifact
| activity
| character
| character
|-
|-
| ordered_artifact_house_claimant
| ordered_activity_invited
| Iterate through all dynasty houses with a claim on the scoped artifact
| Iterate through all characters who have unanswered invites to a specific activity
| <pre>ordered_artifact_house_claimant = {
| <pre>ordered_activity_invited = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第663行: 第728行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| artifact
| activity
| dynasty house
| character
|-
| ordered_participant
| Iterate through all participants in an activity
| <pre>ordered_participant = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| activity
| character
|-
| random_activity_declined
| Iterate through all characters who declined an activity invite to a specific activity
| <pre>random_activity_declined = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| activity
| character
|-
|-
| random_artifact_claimant
| random_activity_invited
| Iterate through all characters with a claim on the scoped artifact
| Iterate through all characters who have unanswered invites to a specific activity
| <pre>random_artifact_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_activity_invited = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| artifact
| activity
| character
| character
|-
|-
| random_artifact_house_claimant
| random_participant
| Iterate through all dynasty houses with a claim on the scoped artifact
| Iterate through all participants in an activity
| <pre>random_artifact_house_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| artifact
| activity
| dynasty house
| character
|-
|-
| reforge_artifact
| battle_event
| Reforges the given artifact, restoring its durability and potentially changing any other attributes such as type or modifiers unless those fields are left empty
| Makes a battle event show up in combat, and the combat result summary. The key is used for loc, with '_friendly' or '_enemy' appended. If this side is not the player's side, the two portraits get flipped. battle_event = { left_portrait = someone right_portrait = someone key = string }
| <pre>
| <pre></pre>
Be aware that we make use of the current scopes implicitly. This is done in common/artifacts/visuals
| combat side
name = dynamic description - artifact name
description = dynamic description - artifact description
rarity = enum - artifact rarity, ex. legendary
type = flag - inventory slot type, ex. trinket
modifier = static modifier - applied to the character whom wields this artifact
durability = script value - new durability, will be max by default
max_durability = script value - Optional. A value for the max durability, which would override the one normally assigned by the defines
decaying = yes/no - Optional. Set if artifact decays with time. Yes by default
history = artifact history entry - custom history entry to denote for example that this is artifact was reforged by someone else than the owner
  type = artifact history entry type - available types:
   created_before_history
   created
   discovered
   claimed_by_house
   given
   stolen
   inherited
   conquest
   taken_in_siege
   taken_in_battle
   won_in_duel
   reforged
template = artifact scripted template - a scripted base template with triggers and modifiers
visuals = artifact visual type - how this artifact should appear visually
generate_history = bool - automatically generate a new history entry if none has been scripted?
quality = script value - new quality, used in AI scoring
wealth = script value - new wealth, used in AI scoring
creator = character scope - set a custom creator of the artifact ( default is the owner )
visuals_source = scope containing landed title, dynasty or house - set a source of coat of arms graphics for the artifact
(only few artifact models actually make use of it. Most notable - banners)</pre>
| artifact
|-
|-
| remove_artifact_feature_group
| every_side_commander
| Removes th feature from the specified group from the artifact.
| Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
| <pre>Cannot remove required groups.
| <pre>every_side_commander = { limit = { <triggers> } <effects> }</pre>
remove_artifact_feature_group = key</pre>
| combat side
| artifact
| character
|-
|-
| remove_artifact_modifier
| every_side_knight
| Removes a static modifier to the given artifact
| Iterate through all knights
| <pre>remove_artifact_modifier = modifier_name
| <pre>every_side_knight = { limit = { <triggers> } <effects> }</pre>
NOTE: does not support duration!</pre>
| combat side
| artifact
| character
|-
|-
| set_artifact_description
| lose_combat
| Sets the description of the given artifact
| ends the combat as the losing side (doesn't end the combat if evaluated to false)
| <pre>set_artifact_description = dynamic desc</pre>
| <pre></pre>
| artifact
| combat side
|-
|-
| set_artifact_feature
| ordered_side_commander
| Sets the specified feature on the artifact.
| Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
| <pre>If there's already a feature of that group, it gets overridden.
| <pre>ordered_side_commander = {
set_artifact_feature = key</pre>
limit = { <triggers> }
| artifact
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| combat side
| character
|-
|-
| set_artifact_feature_group
| ordered_side_knight
| Sets a feature from the specified group on the artifact.
| Iterate through all knights
| <pre>Uses the current scopes. Uses the weighting from the group.
| <pre>ordered_side_knight = {
If there's already a feature of that group, it gets overridden.
limit = { <triggers> }
set_artifact_feature_group = key</pre>
order_by = script_value
| artifact
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| combat side
| character
|-
|-
| set_artifact_name
| random_side_commander
| Sets the name of the given artifact
| Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
| <pre>set_artifact_name = dynamic name</pre>
| <pre>random_side_commander = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| artifact
| combat side
| character
|-
|-
| set_artifact_rarity
| random_side_knight
| Sets the rarity of the scoped artifact. Note that this does not update graphics and the like
| Iterate through all knights
| <pre>set_artifact_rarity = common</pre>
| <pre>random_side_knight = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| artifact
| combat side
| character
|-
|-
| set_max_durability
| win_combat
| Sets the artifact's max durability
| ends the combat as the winning side (doesn't end the combat if evaluated to false)
| <pre></pre>
| <pre></pre>
| artifact
| combat side
|-
|-
| set_owner
| add_from_contribution_attackers
| Change the artifacts owner and transfer it to the given character
| Adds prestige, gold and piety based on contribution to allied attackers. parameters: prestige, gold, piety.
| <pre>
| <pre></pre>
set_artifact_owner = {}
| casus belli
target = character scope - the new owner character
history = artifact history entry - custom history entry to denote for example that this is artifact was stolen rather than given
generate_history = bool - automatically generate a new history entry if none has been scripted?</pre>
| artifact
|-
|-
| set_should_decay
| add_from_contribution_defenders
| Set if the scoped artifact should decay with time or not
| Adds prestige, gold and piety based on contribution to allied defenders. parameters: prestige, gold, piety.
| <pre>set_should_decay = yes/no</pre>
| <pre></pre>
| artifact
| casus belli
|-
|-
| generate_coa
| every_target_title
| Generates a coat of arms for the scoped landed title, dynasty or house
| Iterate through all casus belli's target titles
| <pre>generate_coa = yes</pre>
| <pre>every_target_title = { limit = { <triggers> } <effects> }</pre>
| landed title, dynasty, dynasty house
| casus belli
|
| landed title
|-
|-
| reset_coa
| ordered_target_title
| Rest the coat of arms for the scoped landed title, dynasty or house to its template
| Iterate through all casus belli's target titles
| <pre>reset_coa = yes</pre>
| <pre>ordered_target_title = {
| landed title, dynasty, dynasty house
limit = { <triggers> }
|
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| casus belli
| landed title
|-
|-
| set_coa
| random_target_title
| Sets the coat of arms of a landed title, dynasty, or house to the right hand side coat of arms or that of an object of the same type
| Iterate through all casus belli's target titles
| <pre>set_coa = k_england
| <pre>random_target_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
set_coa = scope:new_coa</pre>
| casus belli
| landed title, dynasty, dynasty house
| landed title
|
|-
|-
| add_county_modifier
| add_loot
| Add a modifier to a county
| Adds loot to the currently scoped raiding army.
| <pre>add_county_modifier = name
| <pre>Usage:
add_county_modifier = { modifier = name days/weeks/months/years = int }
add_loot = VALUE</pre>
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier</pre>
| army
| landed title
|-
|-
| change_county_control
| assign_commander
| Changes the county control of a title. If the title has higher tier than county, the effect will propagate down to all counties below it.
| Assign a commander for the scoped army
| <pre></pre>
| <pre>set_commander = scope:a_character</pre>
| landed title
| army
| character
|-
| remove_commander
| Removes the currently assigned commander from the scoped army
| <pre>remove_commander = yes</pre>
| army
|-
|-
| change_de_jure_drift_progress
| set_army_location
| Change the progress of de jure drift of a title<drifting_title> = { change_de_jure_drift_progress = {   target = <drift_target_title>   values = <progress_change_value> } }
| Teleports the army to the given location. Cannot be done while in combat. Will cause combat to happen with this army as the attacker if there's hostiles in the target
| <pre></pre>
| <pre>set_army_location = scope:province</pre>
| landed title
| army
| province
|-
|-
| change_development_level
| add_artifact_history
| Changes the development level of a title. If the title has higher tier than county, the effect will propagate down to all counties below it.
| Adds a history entry to the artifact, could for example be a reforging event
| <pre></pre>
| <pre>
| landed title
type = enum - history entry type
date = jomini date - when this historical event took place
actor = character - who is the actor in the event, for example who created it
recipient = character - who is the recipient in the event, for example who was the artifact given to
location = province - where the event took place</pre>
| artifact
|-
|-
| change_development_progress
| add_artifact_modifier
| Changes the development progress of a title. If the title has higher tier than county, the effect will propagate down to all counties below it.
| Adds a static modifier to the given artifact
| <pre></pre>
| <pre>add_artifact_modifier = modifier_name
| landed title
NOTE: does not support duration!</pre>
| artifact
|-
|-
| change_development_progress_with_overflow
| add_artifact_title_history
| Changes the development progress of a title. If the title has higher tier than county, the effect will propagate down to all counties below it. Will overflow, so adding +100 to a county with 50 progress left will increase the level by 1 and result in 50 progress towards the next level
| Adds the title history of the given title to the scoped artifacts history
| <pre></pre>
| <pre>
| landed title
add_artifact_title_history = {}
target = title scope - landed title to take history from
date = game date - from which date onwards to copy historical entries</pre>
| artifact
|-
|-
| clear_title_laws
| add_durability
| remove all title laws from the scoped title. DOES NOT apply law removal costs and effects.
| Add this much to the artifacts durability
| <pre>clear_title_laws = yes</pre>
| <pre></pre>
| landed title
| artifact
|-
|-
| clear_title_laws_effects
| clear_artifact_modifiers
| remove all title laws from the scoped title. DOES apply law removal costs and effects.
| Removes all modifiers from the scoped artifact
| <pre>clear_title_laws_effects = yes</pre>
| <pre>clear_artifact_modifiers = yes</pre>
| landed title
| artifact
|-
|-
| copy_title_history
| copy_artifact_modifiers
| Copy title history from another title
| Copies the modifiers of the target artifact. Does *not* clear out existing modifiers
| <pre>copy_title_history = source_title</pre>
| <pre>copy_artifact_modifiers = target_artifact</pre>
| landed title
| artifact
| landed title
| artifact
|-
|-
| every_any_past_holder
| every_artifact_claimant
| Iterate through all past owners of a title from earliest to latest
| Iterate through all characters with a claim on the scoped artifact
| <pre>every_any_past_holder = { limit = { <triggers> } <effects> }</pre>
| <pre>every_artifact_claimant = { limit = { <triggers> } <effects> }</pre>
| landed title
| artifact
| character
| character
|-
|-
| every_any_past_holder_reversed
| every_artifact_house_claimant
| Iterate through all past owners of a title from latest to earliest
| Iterate through all dynasty houses with a claim on the scoped artifact
| <pre>every_any_past_holder_reversed = { limit = { <triggers> } <effects> }</pre>
| <pre>every_artifact_house_claimant = { limit = { <triggers> } <effects> }</pre>
| landed title
| artifact
| character
| dynasty house
|-
|-
| every_claimant
| ordered_artifact_claimant
| Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
| Iterate through all characters with a claim on the scoped artifact
| <pre>every_claimant = { limit = { <triggers> } <effects> }</pre>
| <pre>ordered_artifact_claimant = {
| landed title
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| artifact
| character
| character
|-
|-
| every_connected_county
| ordered_artifact_house_claimant
| Iterate through all counties connected to this one. Is based on top liege
| Iterate through all dynasty houses with a claim on the scoped artifact
| <pre>any/every/whatever_connectec_county = {
| <pre>ordered_artifact_house_claimant = {
max_naval_distance = 500
limit = { <triggers> }
allow_one_county_land_gap = yes
order_by = script_value
every_connected_county = { limit = { <triggers> } <effects> }</pre>
position = int
| landed title
min = int
| landed title
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| artifact
| dynasty house
|-
|-
| every_county_province
| random_artifact_claimant
| Iterate through all provinces in a county
| Iterate through all characters with a claim on the scoped artifact
| <pre>every_county_province = { limit = { <triggers> } <effects> }</pre>
| <pre>random_artifact_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| artifact
| province
|-
| every_de_jure_county_holder
| Iterate through all characters directly holding counties within this dejure title
| <pre>every_de_jure_county_holder = { limit = { <triggers> } <effects> }</pre>
| landed title
| character
| character
|-
|-
| every_de_jure_top_liege
| random_artifact_house_claimant
| Iterate through all top lieges of the counts within this dejure title
| Iterate through all dynasty houses with a claim on the scoped artifact
| <pre>every_de_jure_top_liege = { limit = { <triggers> } <effects> }</pre>
| <pre>random_artifact_house_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| artifact
| character
| dynasty house
|-
|-
| every_dejure_vassal_title_holder
| reforge_artifact
| Iterate through all the vassal holders of the title
| Reforges the given artifact, restoring its durability and potentially changing any other attributes such as type or modifiers unless those fields are left empty
| <pre>every_dejure_vassal_title_holder = { limit = { <triggers> } <effects> }</pre>
| <pre>
| landed title
Be aware that we make use of the current scopes implicitly. This is done in common/artifacts/visuals
| character
name = dynamic description - artifact name
description = dynamic description - artifact description
rarity = enum - artifact rarity, ex. legendary
type = flag - inventory slot type, ex. trinket
modifier = static modifier - applied to the character whom wields this artifact
durability = script value - new durability, will be max by default
max_durability = script value - Optional. A value for the max durability, which would override the one normally assigned by the defines
decaying = yes/no - Optional. Set if artifact decays with time. Yes by default
history = artifact history entry - custom history entry to denote for example that this is artifact was reforged by someone else than the owner
  type = artifact history entry type - available types:
   created_before_history
   created
   discovered
   claimed_by_house
   given
   stolen
   inherited
   conquest
   taken_in_siege
   taken_in_battle
   won_in_duel
   reforged
template = artifact scripted template - a scripted base template with triggers and modifiers
visuals = artifact visual type - how this artifact should appear visually
generate_history = bool - automatically generate a new history entry if none has been scripted?
quality = script value - new quality, used in AI scoring
wealth = script value - new wealth, used in AI scoring
creator = character scope - set a custom creator of the artifact ( default is the owner )
visuals_source = scope containing landed title, dynasty or house - set a source of coat of arms graphics for the artifact
(only few artifact models actually make use of it. Most notable - banners)</pre>
| artifact
|-
|-
| every_election_candidate
| remove_artifact_feature_group
| Iterate through all characters who are valid candidates in an election for a title
| Removes th feature from the specified group from the artifact.
| <pre>every_election_candidate = { limit = { <triggers> } <effects> }</pre>
| <pre>Cannot remove required groups.
| landed title
remove_artifact_feature_group = key</pre>
| character
| artifact
|-
|-
| every_elector
| remove_artifact_modifier
| Iterate through all characters who are valid electors in an election for a title
| Removes a static modifier to the given artifact
| <pre>every_elector = { limit = { <triggers> } <effects> }</pre>
| <pre>remove_artifact_modifier = modifier_name
| landed title
NOTE: does not support duration!</pre>
| character
| artifact
|-
|-
| every_in_de_facto_hierarchy
| set_artifact_description
| Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| Sets the description of the given artifact
| <pre>This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
| <pre>set_artifact_description = dynamic desc</pre>
..._de_jure_vassal_and_below = { continue = { conditions } }
| artifact
every_in_de_facto_hierarchy = { limit = { <triggers> } <effects> }</pre>
| landed title
| landed title
|-
|-
| every_in_de_jure_hierarchy
| set_artifact_feature
| Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| Sets the specified feature on the artifact.
| <pre>This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
| <pre>If there's already a feature of that group, it gets overridden.
..._de_jure_vassal_and_below = { continue = { conditions } }
set_artifact_feature = key</pre>
every_in_de_jure_hierarchy = { limit = { <triggers> } <effects> }</pre>
| artifact
| landed title
| landed title
|-
|-
| every_neighboring_county
| set_artifact_feature_group
| Iterate through all neighboring counties. Can only be used in county scope
| Sets a feature from the specified group on the artifact.
| <pre>every_neighboring_county = { limit = { <triggers> } <effects> }</pre>
| <pre>Uses the current scopes. Uses the weighting from the group.
| landed title
If there's already a feature of that group, it gets overridden.
| landed title
set_artifact_feature_group = key</pre>
| artifact
|-
|-
| every_this_title_or_de_jure_above
| set_artifact_name
| Iterate through this title and all its dejure liege titles
| Sets the name of the given artifact
| <pre>every_this_title_or_de_jure_above = { limit = { <triggers> } <effects> }</pre>
| <pre>set_artifact_name = dynamic name</pre>
| landed title
| artifact
| landed title
|-
|-
| every_title_heir
| set_artifact_rarity
| Line of succession for the scoped title
| Sets the rarity of the scoped artifact. Note that this does not update graphics and the like
| <pre>every_title_heir = { limit = { <triggers> } <effects> }</pre>
| <pre>set_artifact_rarity = common</pre>
| landed title
| artifact
| character
|-
|-
| every_title_joined_faction
| set_max_durability
| Iterate through all factions joined the scope landed title
| Sets the artifact's max durability
| <pre>every_title_joined_faction = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| landed title
| artifact
| faction
|-
|-
| every_title_to_title_neighboring_and_across_water_county
| set_owner
| Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
| Change the artifacts owner and transfer it to the given character
| <pre>every_title_to_title_neighboring_and_across_water_county = { limit = { <triggers> } <effects> }</pre>
| <pre>
| landed title
set_artifact_owner = {}
| landed title
target = character scope - the new owner character
history = artifact history entry - custom history entry to denote for example that this is artifact was stolen rather than given
generate_history = bool - automatically generate a new history entry if none has been scripted?</pre>
| artifact
|-
|-
| every_title_to_title_neighboring_and_across_water_duchy
| set_should_decay
| Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| Set if the scoped artifact should decay with time or not
| <pre>every_title_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } <effects> }</pre>
| <pre>set_should_decay = yes/no</pre>
| landed title
| artifact
| landed title
|-
|-
| every_title_to_title_neighboring_and_across_water_empire
| generate_coa
| Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| Generates a coat of arms for the scoped landed title, dynasty or house
| <pre>every_title_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } <effects> }</pre>
| <pre>generate_coa = yes</pre>
| landed title
| landed title, dynasty, dynasty house
| landed title
|-
|-
| every_title_to_title_neighboring_and_across_water_kingdom
| reset_coa
| Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| Rest the coat of arms for the scoped landed title, dynasty or house to its template
| <pre>every_title_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } <effects> }</pre>
| <pre>reset_coa = yes</pre>
| landed title
| landed title, dynasty, dynasty house
| landed title
|-
|-
| every_title_to_title_neighboring_county
| set_coa
| Scopes from a title to a neighboring county (looking trough the de Jure lieges)
| Sets the coat of arms of a landed title, dynasty, or house to the right hand side coat of arms or that of an object of the same type
| <pre>every_title_to_title_neighboring_county = { limit = { <triggers> } <effects> }</pre>
| <pre>set_coa = k_england
set_coa = scope:new_coa</pre>
| landed title, dynasty, dynasty house
|
|-
| add_county_modifier
| Add a modifier to a county
| <pre>add_county_modifier = name
add_county_modifier = { modifier = name days/weeks/months/years = int }
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier</pre>
| landed title
| landed title
|
|-
| change_county_control
| Changes the county control of a title. If the title has higher tier than county, the effect will propagate down to all counties below it.
| <pre></pre>
| landed title
| landed title
|
|-
|-
| every_title_to_title_neighboring_duchy
| change_de_jure_drift_progress
| Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
| Change the progress of de jure drift of a title<drifting_title> = { change_de_jure_drift_progress = {   target = <drift_target_title>   values = <progress_change_value> } }
| <pre>every_title_to_title_neighboring_duchy = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| landed title
| landed title
|
|-
| change_development_level
| Changes the development level of a title. If the title has higher tier than county, the effect will propagate down to all counties below it.
| <pre></pre>
| landed title
| landed title
|
|-
|-
| every_title_to_title_neighboring_empire
| change_development_progress
| Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
| Changes the development progress of a title. If the title has higher tier than county, the effect will propagate down to all counties below it.
| <pre>every_title_to_title_neighboring_empire = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| landed title
| landed title
|
|-
| change_development_progress_with_overflow
| Changes the development progress of a title. If the title has higher tier than county, the effect will propagate down to all counties below it. Will overflow, so adding +100 to a county with 50 progress left will increase the level by 1 and result in 50 progress towards the next level
| <pre></pre>
| landed title
| landed title
|
|-
|-
| every_title_to_title_neighboring_kingdom
| clear_title_laws
| Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
| remove all title laws from the scoped title. DOES NOT apply law removal costs and effects.
| <pre>every_title_to_title_neighboring_kingdom = { limit = { <triggers> } <effects> }</pre>
| <pre>clear_title_laws = yes</pre>
| landed title
| landed title
|
|-
| clear_title_laws_effects
| remove all title laws from the scoped title. DOES apply law removal costs and effects.
| <pre>clear_title_laws_effects = yes</pre>
| landed title
| landed title
|
|-
|-
| lease_out_to
| copy_title_history
| Lease out the scoped title
| Copy title history from another title
| <pre>lease_out_to = scope:a_holy_order</pre>
| <pre>copy_title_history = source_title</pre>
| landed title
| landed title
| landed title
| holy order
|-
|-
| ordered_any_past_holder
| every_past_holder
| Iterate through all past owners of a title from earliest to latest
| Iterate through all past owners of a title from earliest to latest
| <pre>ordered_any_past_holder = {
| <pre>every_any_past_holder = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| character
|-
|-
| ordered_any_past_holder_reversed
| every_past_holder_reversed
| Iterate through all past owners of a title from latest to earliest
| Iterate through all past owners of a title from latest to earliest
| <pre>ordered_any_past_holder_reversed = {
| <pre>every_any_past_holder_reversed = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| character
|-
|-
| ordered_claimant
| every_claimant
| Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
| Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
| <pre>ordered_claimant = {
| <pre>every_claimant = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| character
|-
|-
| ordered_connected_county
| every_connected_county
| Iterate through all counties connected to this one. Is based on top liege
| Iterate through all counties connected to this one. Is based on top liege
| <pre>any/every/whatever_connectec_county = {
| <pre>any/every/whatever_connectec_county = {
max_naval_distance = 500
max_naval_distance = 500
allow_one_county_land_gap = yes
allow_one_county_land_gap = yes
ordered_connected_county = {
every_connected_county = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| landed title
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
|-
| every_controlled_faith
| Iterate through all faiths headed by a title
| <pre>every_controlled_faith = { limit = { <triggers> } <effects> }</pre>
| landed title
| landed title
| faith
|-
|-
| ordered_county_province
| every_county_province
| Iterate through all provinces in a county
| Iterate through all provinces in a county
| <pre>ordered_county_province = {
| <pre>every_county_province = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| province
| province
|-
|-
| ordered_de_jure_county_holder
| every_county_struggle
| Iterate through all characters directly holding counties within this dejure title
| Iterate through all struggles that a county is involved in.
| <pre>ordered_de_jure_county_holder = {
| <pre>every_county_struggle = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| landed title
order_by = script_value
| struggle
position = int
|-
min = int
| every_de_jure_county
max = script_value
| Iterate through all counties within this dejure title
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre>every_de_jure_county = { limit = { <triggers> } <effects> }</pre>
<effects> }</pre>
| landed title
| landed title
|-
| every_de_jure_county_holder
| Iterate through all characters directly holding counties within this dejure title
| <pre>every_de_jure_county_holder = { limit = { <triggers> } <effects> }</pre>
| landed title
| landed title
| character
| character
|-
|-
| ordered_de_jure_top_liege
| every_de_jure_top_liege
| Iterate through all top lieges of the counts within this dejure title
| Iterate through all top lieges of the counts within this dejure title
| <pre>ordered_de_jure_top_liege = {
| <pre>every_de_jure_top_liege = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| character
|-
|-
| ordered_dejure_vassal_title_holder
| every_dejure_vassal_title_holder
| Iterate through all the vassal holders of the title
| Iterate through all the vassal holders of the title
| <pre>ordered_dejure_vassal_title_holder = {
| <pre>every_dejure_vassal_title_holder = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| character
|-
|-
| ordered_election_candidate
| every_direct_de_facto_vassal_title
| Iterate through all de facto vassal titles
| <pre>every_direct_de_facto_vassal_title = { limit = { <triggers> } <effects> }</pre>
| landed title
| landed title
|-
| every_direct_de_jure_vassal_title
| Iterate through the all de jure vassals titles
| <pre>every_direct_de_jure_vassal_title = { limit = { <triggers> } <effects> }</pre>
| landed title
| landed title
|-
| every_election_candidate
| Iterate through all characters who are valid candidates in an election for a title
| Iterate through all characters who are valid candidates in an election for a title
| <pre>ordered_election_candidate = {
| <pre>every_election_candidate = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| character
|-
|-
| ordered_elector
| every_elector
| Iterate through all characters who are valid electors in an election for a title
| Iterate through all characters who are valid electors in an election for a title
| <pre>ordered_elector = {
| <pre>every_elector = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| landed title
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| character
| character
|-
|-
| ordered_in_de_facto_hierarchy
| every_in_de_facto_hierarchy
| Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| <pre>This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
| <pre>This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
..._de_jure_vassal_and_below = { continue = { conditions } }
..._de_jure_vassal_and_below = { continue = { conditions } }
ordered_in_de_facto_hierarchy = {
every_in_de_facto_hierarchy = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| ordered_in_de_jure_hierarchy
| every_in_de_jure_hierarchy
| Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| <pre>This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
| <pre>This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
..._de_jure_vassal_and_below = { continue = { conditions } }
..._de_jure_vassal_and_below = { continue = { conditions } }
ordered_in_de_jure_hierarchy = {
every_in_de_jure_hierarchy = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| ordered_neighboring_county
| every_neighboring_county
| Iterate through all neighboring counties. Can only be used in county scope
| Iterate through all neighboring counties. Can only be used in county scope
| <pre>ordered_neighboring_county = {
| <pre>every_neighboring_county = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| ordered_this_title_or_de_jure_above
| every_this_title_or_de_jure_above
| Iterate through this title and all its dejure liege titles
| Iterate through this title and all its dejure liege titles
| <pre>ordered_this_title_or_de_jure_above = {
| <pre>every_this_title_or_de_jure_above = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| ordered_title_heir
| every_title_heir
| Line of succession for the scoped title
| Line of succession for the scoped title
| <pre>ordered_title_heir = {
| <pre>every_title_heir = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| landed title
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| character
| character
|-
|-
| ordered_title_joined_faction
| every_title_joined_faction
| Iterate through all factions joined the scope landed title
| Iterate through all factions joined the scope landed title
| <pre>ordered_title_joined_faction = {
| <pre>every_title_joined_faction = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| faction
| faction
|-
|-
| ordered_title_to_title_neighboring_and_across_water_county
| every_title_to_title_neighboring_and_across_water_county
| Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
| Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
| <pre>ordered_title_to_title_neighboring_and_across_water_county = {
| <pre>every_title_to_title_neighboring_and_across_water_county = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| ordered_title_to_title_neighboring_and_across_water_duchy
| every_title_to_title_neighboring_and_across_water_duchy
| Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| <pre>ordered_title_to_title_neighboring_and_across_water_duchy = {
| <pre>every_title_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| ordered_title_to_title_neighboring_and_across_water_empire
| every_title_to_title_neighboring_and_across_water_empire
| Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| <pre>ordered_title_to_title_neighboring_and_across_water_empire = {
| <pre>every_title_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| ordered_title_to_title_neighboring_and_across_water_kingdom
| every_title_to_title_neighboring_and_across_water_kingdom
| Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| <pre>ordered_title_to_title_neighboring_and_across_water_kingdom = {
| <pre>every_title_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| landed title
order_by = script_value
| landed title
position = int
|-
min = int
| every_title_to_title_neighboring_county
max = script_value
| Scopes from a title to a neighboring county (looking trough the de Jure lieges)
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre>every_title_to_title_neighboring_county = { limit = { <triggers> } <effects> }</pre>
<effects> }</pre>
| landed title
| landed title
|-
| every_title_to_title_neighboring_duchy
| Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
| <pre>every_title_to_title_neighboring_duchy = { limit = { <triggers> } <effects> }</pre>
| landed title
| landed title
|-
| every_title_to_title_neighboring_empire
| Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
| <pre>every_title_to_title_neighboring_empire = { limit = { <triggers> } <effects> }</pre>
| landed title
| landed title
|-
| every_title_to_title_neighboring_kingdom
| Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
| <pre>every_title_to_title_neighboring_kingdom = { limit = { <triggers> } <effects> }</pre>
| landed title
| landed title
| landed title
|-
| lease_out_to
| Lease out the scoped title
| <pre>lease_out_to = scope:a_holy_order</pre>
| landed title
| landed title
| holy order
|-
|-
| ordered_title_to_title_neighboring_county
| ordered_past_holder
| Scopes from a title to a neighboring county (looking trough the de Jure lieges)
| Iterate through all past owners of a title from earliest to latest
| <pre>ordered_title_to_title_neighboring_county = {
| <pre>ordered_any_past_holder = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第1,294行: 第1,366行:
<effects> }</pre>
<effects> }</pre>
| landed title
| landed title
| landed title
| character
|-
|-
| ordered_title_to_title_neighboring_duchy
| ordered_past_holder_reversed
| Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
| Iterate through all past owners of a title from latest to earliest
| <pre>ordered_title_to_title_neighboring_duchy = {
| <pre>ordered_any_past_holder_reversed = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第1,307行: 第1,379行:
<effects> }</pre>
<effects> }</pre>
| landed title
| landed title
| landed title
| character
|-
|-
| ordered_title_to_title_neighboring_empire
| ordered_claimant
| Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
| Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
| <pre>ordered_title_to_title_neighboring_empire = {
| <pre>ordered_claimant = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第1,320行: 第1,392行:
<effects> }</pre>
<effects> }</pre>
| landed title
| landed title
| landed title
| character
|-
|-
| ordered_title_to_title_neighboring_kingdom
| ordered_connected_county
| Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
| Iterate through all counties connected to this one. Is based on top liege
| <pre>ordered_title_to_title_neighboring_kingdom = {
| <pre>any/every/whatever_connectec_county = {
max_naval_distance = 500
allow_one_county_land_gap = yes
ordered_connected_county = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第1,335行: 第1,410行:
| landed title
| landed title
|-
|-
| random_any_past_holder
| ordered_controlled_faith
| Iterate through all past owners of a title from earliest to latest
| Iterate through all faiths headed by a title
| <pre>random_any_past_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_controlled_faith = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| faith
|-
|-
| random_any_past_holder_reversed
| ordered_county_province
| Iterate through all past owners of a title from latest to earliest
| Iterate through all provinces in a county
| <pre>random_any_past_holder_reversed = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_county_province = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| province
|-
|-
| random_claimant
| ordered_county_struggle
| Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
| Iterate through all struggles that a county is involved in.
| <pre>random_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_county_struggle = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| struggle
|-
|-
| random_connected_county
| ordered_de_jure_county
| Iterate through all counties connected to this one. Is based on top liege
| Iterate through all counties within this dejure title
| <pre>any/every/whatever_connectec_county = {
| <pre>ordered_de_jure_county = {
max_naval_distance = 500
limit = { <triggers> }
allow_one_county_land_gap = yes
order_by = script_value
random_connected_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| random_county_province
| ordered_de_jure_county_holder
| Iterate through all provinces in a county
| <pre>random_county_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| province
|-
| random_de_jure_county_holder
| Iterate through all characters directly holding counties within this dejure title
| Iterate through all characters directly holding counties within this dejure title
| <pre>random_de_jure_county_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_de_jure_county_holder = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| character
|-
|-
| random_de_jure_top_liege
| ordered_de_jure_top_liege
| Iterate through all top lieges of the counts within this dejure title
| Iterate through all top lieges of the counts within this dejure title
| <pre>random_de_jure_top_liege = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_de_jure_top_liege = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| character
|-
|-
| random_dejure_vassal_title_holder
| ordered_dejure_vassal_title_holder
| Iterate through all the vassal holders of the title
| Iterate through all the vassal holders of the title
| <pre>random_dejure_vassal_title_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_dejure_vassal_title_holder = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| character
|-
|-
| random_election_candidate
| ordered_direct_de_facto_vassal_title
| Iterate through all characters who are valid candidates in an election for a title
| Iterate through all de facto vassal titles
| <pre>random_election_candidate = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_direct_de_facto_vassal_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
|-
| random_elector
| Iterate through all characters who are valid electors in an election for a title
| <pre>random_elector = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| character
|-
|-
| random_in_de_facto_hierarchy
| ordered_direct_de_jure_vassal_title
| Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| Iterate through the all de jure vassals titles
| <pre>ordered_direct_de_jure_vassal_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
|-
| ordered_election_candidate
| Iterate through all characters who are valid candidates in an election for a title
| <pre>ordered_election_candidate = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| character
|-
| ordered_elector
| Iterate through all characters who are valid electors in an election for a title
| <pre>ordered_elector = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| character
|-
| ordered_in_de_facto_hierarchy
| Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| <pre>This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
| <pre>This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
..._de_jure_vassal_and_below = { continue = { conditions } }
..._de_jure_vassal_and_below = { continue = { conditions } }
random_in_de_facto_hierarchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
ordered_in_de_facto_hierarchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| random_in_de_jure_hierarchy
| ordered_in_de_jure_hierarchy
| Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| <pre>This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
| <pre>This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
..._de_jure_vassal_and_below = { continue = { conditions } }
..._de_jure_vassal_and_below = { continue = { conditions } }
random_in_de_jure_hierarchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
ordered_in_de_jure_hierarchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| random_neighboring_county
| ordered_neighboring_county
| Iterate through all neighboring counties. Can only be used in county scope
| Iterate through all neighboring counties. Can only be used in county scope
| <pre>random_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_neighboring_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| random_this_title_or_de_jure_above
| ordered_this_title_or_de_jure_above
| Iterate through this title and all its dejure liege titles
| Iterate through this title and all its dejure liege titles
| <pre>random_this_title_or_de_jure_above = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_this_title_or_de_jure_above = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| random_title_heir
| ordered_title_heir
| Line of succession for the scoped title
| Line of succession for the scoped title
| <pre>random_title_heir = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_title_heir = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| character
| character
|-
|-
| random_title_joined_faction
| ordered_title_joined_faction
| Iterate through all factions joined the scope landed title
| Iterate through all factions joined the scope landed title
| <pre>random_title_joined_faction = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_title_joined_faction = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| faction
| faction
|-
|-
| random_title_to_title_neighboring_and_across_water_county
| ordered_title_to_title_neighboring_and_across_water_county
| Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
| Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
| <pre>random_title_to_title_neighboring_and_across_water_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_title_to_title_neighboring_and_across_water_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| random_title_to_title_neighboring_and_across_water_duchy
| ordered_title_to_title_neighboring_and_across_water_duchy
| Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| <pre>random_title_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_title_to_title_neighboring_and_across_water_duchy = {
| landed title
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
|-
|-
| random_title_to_title_neighboring_and_across_water_empire
| ordered_title_to_title_neighboring_and_across_water_empire
| Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| <pre>random_title_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_title_to_title_neighboring_and_across_water_empire = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| random_title_to_title_neighboring_and_across_water_kingdom
| ordered_title_to_title_neighboring_and_across_water_kingdom
| Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| <pre>random_title_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_title_to_title_neighboring_and_across_water_kingdom = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| random_title_to_title_neighboring_county
| ordered_title_to_title_neighboring_county
| Scopes from a title to a neighboring county (looking trough the de Jure lieges)
| Scopes from a title to a neighboring county (looking trough the de Jure lieges)
| <pre>random_title_to_title_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_title_to_title_neighboring_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| random_title_to_title_neighboring_duchy
| ordered_title_to_title_neighboring_duchy
| Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
| Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
| <pre>random_title_to_title_neighboring_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_title_to_title_neighboring_duchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| random_title_to_title_neighboring_empire
| ordered_title_to_title_neighboring_empire
| Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
| Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
| <pre>random_title_to_title_neighboring_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_title_to_title_neighboring_empire = {
| landed title
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
|-
|-
| random_title_to_title_neighboring_kingdom
| ordered_title_to_title_neighboring_kingdom
| Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
| Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
| <pre>random_title_to_title_neighboring_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_title_to_title_neighboring_kingdom = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| remove_all_county_modifier_instances
| random_past_holder
| Remove all instances of a modifier from a county
| Iterate through all past owners of a title from earliest to latest
| <pre>remove_all_county_modifier_instances = name</pre>
| <pre>random_any_past_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| character
|-
|-
| remove_county_modifier
| random_past_holder_reversed
| Remove a modifier from a county
| Iterate through all past owners of a title from latest to earliest
| <pre>remove_county_modifier = name</pre>
| <pre>random_any_past_holder_reversed = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| character
|-
|-
| reset_title_name
| random_claimant
| Sets the name and adjective of the scoped title back to being based on its key. Won't cause the prefix to change
| Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
| <pre>reset_title_name = yes</pre>
| <pre>random_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| character
|-
|-
| reset_title_prefix
| random_connected_county
| Sets the prefix of the scoped title back to being based on its key. Won't cause its adjective or name to change
| Iterate through all counties connected to this one. Is based on top liege
| <pre>reset_title_prefix = yes</pre>
| <pre>any/every/whatever_connectec_county = {
max_naval_distance = 500
allow_one_county_land_gap = yes
random_connected_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| landed title
|
|-
|-
| revoke_lease
| random_controlled_faith
| Revoke the lease of the scoped title
| Iterate through all faiths headed by a title
| <pre>revoke_lease = yes</pre>
| <pre>random_controlled_faith = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| faith
|-
|-
| set_always_follows_primary_heir
| random_county_province
| Sets if the title should always go to the primary heir in partition succession
| Iterate through all provinces in a county
| <pre>set_always_follows_primary_heir = yes</pre>
| <pre>random_county_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| province
|-
|-
| set_can_be_named_after_dynasty
| random_county_struggle
| Sets if the title can be named after it's holder's dynasty. set_can_be_named_after_dynasty_effect = no
| Iterate through all struggles that a county is involved in.
| <pre></pre>
| <pre>random_county_struggle = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| struggle
|-
|-
| set_capital_barony
| random_de_jure_county
| Sets scoped barony to be the county capital
| Iterate through all counties within this dejure title
| <pre>set_capital_barony = yes</pre>
| <pre>random_de_jure_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
|
|-
| set_capital_county
| Sets the capital county of the title to the target county
| <pre>set_capital_county = <some county title></pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| set_color_from_title
| random_de_jure_county_holder
| Sets the color of the title to the same as the target title (shifted very slightly to not be identical)
| Iterate through all characters directly holding counties within this dejure title
| <pre>set_color_from_title = <some title></pre>
| <pre>random_de_jure_county_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| landed title
| character
|-
|-
| set_county_culture
| random_de_jure_top_liege
| sets the culture of a county
| Iterate through all top lieges of the counts within this dejure title
| <pre>usage:
| <pre>random_de_jure_top_liege = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
set_county_culture = culture:english/root.character_culture</pre>
| landed title
| landed title
| culture
| character
|-
|-
| set_county_faith
| random_dejure_vassal_title_holder
| Changes what faith a county has
| Iterate through all the vassal holders of the title
| <pre></pre>
| <pre>random_dejure_vassal_title_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| faith
| character
|-
|-
| set_de_jure_liege_title
| random_direct_de_facto_vassal_title
| Set a new DeJure liege title
| Iterate through all de facto vassal titles
| <pre>set_de_jure_liege_title = new_de_jure_liege</pre>
| <pre>random_direct_de_facto_vassal_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| landed title
| landed title
|-
|-
| set_definitive_form
| random_direct_de_jure_vassal_title
| Sets if the title should use a definitive form name (no 'Kingdom of')
| Iterate through the all de jure vassals titles
| <pre>set_definitive_form = yes</pre>
| <pre>random_direct_de_jure_vassal_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| landed title
|
|-
|-
| set_delete_on_destroy
| random_election_candidate
| Sets if the title should be deleted from the gamestate completely when it is destroyed. set_delete_on_destroy = yes
| Iterate through all characters who are valid candidates in an election for a title
| <pre></pre>
| <pre>random_election_candidate = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| character
|-
|-
| set_destroy_if_invalid_heir
| random_elector
| Sets if the title should be destroyed on succession if there's no heir matching its restrictions. set_destroy_if_invalid_heir = yes
| Iterate through all characters who are valid electors in an election for a title
| <pre></pre>
| <pre>random_elector = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| character
|-
|-
| set_destroy_on_gain_same_tier
| random_in_de_facto_hierarchy
| Sets if the title should be deleted from the gamestate completely when character gains or create a new title with the same tier.set_destroy_on_gain_same_tier = yes
| Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| <pre></pre>
| <pre>This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
..._de_jure_vassal_and_below = { continue = { conditions } }
random_in_de_facto_hierarchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| landed title
|
|-
|-
| set_destroy_on_succession
| random_in_de_jure_hierarchy
| Sets if the title should be destroyed on succession. set_destroy_on_succession = yes
| Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| <pre></pre>
| <pre>This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
..._de_jure_vassal_and_below = { continue = { conditions } }
random_in_de_jure_hierarchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| landed title
|
|-
|-
| set_landless_title
| random_neighboring_county
| Sets if the title is landless (can be held by rulers with no land)
| Iterate through all neighboring counties. Can only be used in county scope
| <pre>set_landless_title = yes</pre>
| <pre>random_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| landed title
|
|-
|-
| set_no_automatic_claims
| random_this_title_or_de_jure_above
| Sets if the title should disallow automatic claims (meaning claims will only be added by script, and by pressed claims being inherited).
| Iterate through this title and all its dejure liege titles
| <pre>set_no_automatic_claims = yes</pre>
| <pre>random_this_title_or_de_jure_above = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
|
|-
| set_title_name
| sets the name (localization key) of the scoped title. The adjective will be constructed by adding '_adj' to the localisation key. Won't cause the prefix to change
| <pre>set_title_name = TEST_NAME_PLEASE_IGNORE</pre>
| landed title
| landed title
|
|-
|-
| set_title_prefix
| random_title_heir
| sets the prefix of the scoped title. Won't cause its name or adjective to change
| Line of succession for the scoped title
| <pre>set_title_prefix = PREFIX_THE</pre>
| <pre>random_title_heir = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| character
|-
|-
| title_create_faction
| random_title_joined_faction
| the scoped landed title creates a faction of the specified type against the specified target, title_create_faction = { type = X target = Y }
| Iterate through all factions joined the scope landed title
| <pre></pre>
| <pre>random_title_joined_faction = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| faction
|-
|-
| title_join_faction
| random_title_to_title_neighboring_and_across_water_county
| the landed title in the scope joins the assigned faction
| Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
| <pre></pre>
| <pre>random_title_to_title_neighboring_and_across_water_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| landed title
| faction
|-
|-
| title_leave_faction
| random_title_to_title_neighboring_and_across_water_duchy
| the title in the scope leaves the assigned faction
| Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| <pre></pre>
| <pre>random_title_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| landed title
| faction
|-
|-
| update_dynamic_coa
| random_title_to_title_neighboring_and_across_water_empire
| update_dynamic_coa = yes
| Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| <pre>Updates the dynamic coat of arms definition of a given title picking a new one and overwriting the existing set coat of arms with it if picked</pre>
| <pre>random_title_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
| landed title
|
|-
|-
| add_culture_tradition
| random_title_to_title_neighboring_and_across_water_kingdom
| Adds the cultural tradition specified in the RHS to the scope culture.add_culture_tradition = tradition_court_eunuchs
| Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| <pre></pre>
| <pre>random_title_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| culture
| landed title
| landed title
|-
|-
| add_innovation
| random_title_to_title_neighboring_county
| Add innovation to a culture. add_innovation = innovation_key
| Scopes from a title to a neighboring county (looking trough the de Jure lieges)
| <pre></pre>
| <pre>random_title_to_title_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| culture
| landed title
| landed title
|-
|-
| add_name_list
| random_title_to_title_neighboring_duchy
| Adds the name list to the culture
| Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
| <pre><culture> = { add_name_list = name }</pre>
| <pre>random_title_to_title_neighboring_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| culture
| landed title
| landed title
|-
|-
| add_random_innovation
| random_title_to_title_neighboring_empire
| Add random available innovation<culture> = { add_random_innovation = culture_group_military/culture_group_civic/culture_group_regional/yes }
| Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
| <pre></pre>
| <pre>random_title_to_title_neighboring_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| culture
| landed title
| landed title
|-
|-
| add_random_valid_tradition
| random_title_to_title_neighboring_kingdom
| Adds one random valid tradition to a culture. Target character provides context for can_pick and is_shown. If this would put the culture over the tradition limit, an error is loggedadd_random_valid_tradition = scope:character
| Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
| <pre></pre>
| <pre>random_title_to_title_neighboring_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| culture
| landed title
| character
| landed title
|-
|-
| add_random_valid_tradition_replace_if_necessary
| remove_all_county_modifier_instances
| Adds one random valid tradition to a culture. Target character provides context for can_pick and is_shown. If this would put the culture over the tradition limit, a random existing tradition is removedadd_random_valid_tradition_replace_if_necessary = scope:character
| Remove all instances of a modifier from a county
| <pre></pre>
| <pre>remove_all_county_modifier_instances = name</pre>
| culture
| landed title
| character
|-
|-
| change_cultural_acceptance
| remove_county_modifier
| Changes cultural acceptance with the target culture
| Remove a modifier from a county
| <pre>change_cultural_acceptance = {
| <pre>remove_county_modifier = name</pre>
target = <culture>
| landed title
value = script value
desc = dynamic desc. Description that'll show when hovering over the acceptance tooltip in the culture window
}</pre>
| culture
|-
|-
| clear_culture_traditions
| reset_title_name
| Removes all cultural traditions from the scope culture.clear_culture_traditions = yes
| Sets the name and adjective of the scoped title back to being based on its key. Won't cause the prefix to change
| <pre></pre>
| <pre>reset_title_name = yes</pre>
| culture
| landed title
|-
|-
| copy_all_traditions_from
| reset_title_prefix
| Replaces all traditions of scoped culture with traditions from the given culturecopy_all_traditions_from = scope:target_culture
| Sets the prefix of the scoped title back to being based on its key. Won't cause its adjective or name to change
| <pre>reset_title_prefix = yes</pre>
| landed title
|
|-
| revoke_lease
| Revoke the lease of the scoped title
| <pre>revoke_lease = yes</pre>
| landed title
|
|-
| set_always_follows_primary_heir
| Sets if the title should always go to the primary heir in partition succession
| <pre>set_always_follows_primary_heir = yes</pre>
| landed title
|
|-
| set_can_be_named_after_dynasty
| Sets if the title can be named after it's holder's dynasty. set_can_be_named_after_dynasty_effect = no
| <pre></pre>
| <pre></pre>
| culture
| landed title
| culture
|-
|-
| every_culture_county
| set_capital_barony
| Iterate through all counties of the culture
| Sets scoped barony to be the county capital
| <pre>every_culture_county = { limit = { <triggers> } <effects> }</pre>
| <pre>set_capital_barony = yes</pre>
| culture
| landed title
| landed title
|
|-
|-
| every_culture_duchy
| set_capital_county
| Iterate through all duchies of the culture (duchies with at least one county of the culture
| Sets the capital county of the title to the target county
| <pre>every_culture_duchy = { limit = { <triggers> } <effects> }</pre>
| <pre>set_capital_county = <some county title></pre>
| culture
| landed title
| landed title
| landed title
|-
|-
| every_culture_empire
| set_color_from_title
| Iterate through all empires of the culture (empires with at least one county of the culture
| Sets the color of the title to the same as the target title (shifted very slightly to not be identical)
| <pre>every_culture_empire = { limit = { <triggers> } <effects> }</pre>
| <pre>set_color_from_title = <some title></pre>
| culture
| landed title
| landed title
| landed title
|-
|-
| every_culture_kingdom
| set_county_culture
| Iterate through all kingdoms of the culture (kingdoms with at least one county of the culture
| sets the culture of a county
| <pre>every_culture_kingdom = { limit = { <triggers> } <effects> }</pre>
| <pre>usage:
| culture
set_county_culture = culture:english/root.character_culture</pre>
| landed title
| landed title
|-
| every_parent_culture
| Iterate through all parent cultures
| <pre>every_parent_culture = { limit = { <triggers> } <effects> }</pre>
| culture
| culture
| culture
|-
|-
| every_parent_culture_or_above
| set_county_faith
| Iterate through all parent cultures or above
| Changes what faith a county has
| <pre>every_parent_culture_or_above = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| culture
| landed title
| culture
| faith
|-
| set_de_jure_liege_title
| Set a new DeJure liege title
| <pre>set_de_jure_liege_title = new_de_jure_liege</pre>
| landed title
| landed title
|-
|-
| get_all_innovations_from
| set_definitive_form
| Discover all innovations from the target culture
| Sets if the title should use a definitive form name (no 'Kingdom of')
| <pre>get_all_innovations_from = <culture></pre>
| <pre>set_definitive_form = yes</pre>
| culture
| landed title
| culture
|-
|-
| get_random_innovation_from
| set_delete_on_destroy
| Get random available innovation from another culture
| Sets if the title should be deleted from the gamestate completely when it is destroyed. set_delete_on_destroy = yes
| <pre></pre>
| <pre></pre>
| culture
| landed title
|-
|-
| join_era
| set_destroy_if_invalid_heir
| Joins all culture eras up to and including the given one
| Sets if the title should be destroyed on succession if there's no heir matching its restrictions. set_destroy_if_invalid_heir = yes
| <pre>join_era = culture_era_type</pre>
| <pre></pre>
| culture
| landed title
|-
|-
| leave_era
| set_destroy_on_gain_same_tier
| Leaves all culture eras down to and including the given one
| Sets if the title should be deleted from the gamestate completely when character gains or create a new title with the same tier.set_destroy_on_gain_same_tier = yes
| <pre>leave_era = culture_era_type</pre>
| <pre></pre>
| culture
| landed title
|-
|-
| ordered_culture_county
| set_destroy_on_succession
| Iterate through all counties of the culture
| Sets if the title should be destroyed on succession. set_destroy_on_succession = yes
| <pre>ordered_culture_county = {
| <pre></pre>
limit = { <triggers> }
| landed title
order_by = script_value
|
position = int
|-
min = int
| set_landless_title
max = script_value
| Sets if the title is landless (can be held by rulers with no land)
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre>set_landless_title = yes</pre>
<effects> }</pre>
| culture
| landed title
| landed title
|
|-
|-
| ordered_culture_duchy
| set_no_automatic_claims
| Iterate through all duchies of the culture (duchies with at least one county of the culture
| Sets if the title should disallow automatic claims (meaning claims will only be added by script, and by pressed claims being inherited).
| <pre>ordered_culture_duchy = {
| <pre>set_no_automatic_claims = yes</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| culture
| landed title
| landed title
|
|-
|-
| ordered_culture_empire
| set_title_name
| Iterate through all empires of the culture (empires with at least one county of the culture
| sets the name (localization key) of the scoped title. The adjective will be constructed by adding '_adj' to the localisation key. Won't cause the prefix to change
| <pre>ordered_culture_empire = {
| <pre>set_title_name = TEST_NAME_PLEASE_IGNORE</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| culture
| landed title
| landed title
|
|-
|-
| ordered_culture_kingdom
| set_title_prefix
| Iterate through all kingdoms of the culture (kingdoms with at least one county of the culture
| sets the prefix of the scoped title. Won't cause its name or adjective to change
| <pre>ordered_culture_kingdom = {
| <pre>set_title_prefix = PREFIX_THE</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| culture
| landed title
| landed title
|
|-
|-
| ordered_parent_culture
| title_create_faction
| Iterate through all parent cultures
| the scoped landed title creates a faction of the specified type against the specified target, title_create_faction = { type = X target = Y }
| <pre>ordered_parent_culture = {
| <pre></pre>
limit = { <triggers> }
| landed title
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| culture
| culture
|-
|-
| ordered_parent_culture_or_above
| title_join_faction
| Iterate through all parent cultures or above
| the landed title in the scope joins the assigned faction
| <pre>ordered_parent_culture_or_above = {
| <pre></pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| culture
| culture
|-
| random_culture_county
| Iterate through all counties of the culture
| <pre>random_culture_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| culture
| landed title
| landed title
| faction
|-
|-
| random_culture_duchy
| title_leave_faction
| Iterate through all duchies of the culture (duchies with at least one county of the culture
| the title in the scope leaves the assigned faction
| <pre>random_culture_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre></pre>
| culture
| landed title
| landed title
| faction
|-
|-
| random_culture_empire
| update_dynamic_coa
| Iterate through all empires of the culture (empires with at least one county of the culture
| update_dynamic_coa = yes
| <pre>random_culture_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>Updates the dynamic coat of arms definition of a given title picking a new one and overwriting the existing set coat of arms with it if picked</pre>
| culture
| landed title
| landed title
|
|-
|-
| random_culture_kingdom
| add_culture_tradition
| Iterate through all kingdoms of the culture (kingdoms with at least one county of the culture
| Adds the cultural tradition specified in the RHS to the scope culture.add_culture_tradition = tradition_court_eunuchs
| <pre>random_culture_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre></pre>
| culture
| culture
| landed title
|-
|-
| random_parent_culture
| add_innovation
| Iterate through all parent cultures
| Add innovation to a culture. add_innovation = innovation_key
| <pre>random_parent_culture = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre></pre>
| culture
| culture
| culture
|
|-
|-
| random_parent_culture_or_above
| add_name_list
| Iterate through all parent cultures or above
| Adds the name list to the culture
| <pre>random_parent_culture_or_above = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre><culture> = { add_name_list = name }</pre>
| culture
| culture
| culture
|
|-
|-
| remove_culture_tradition
| add_random_innovation
| Removes the cultural tradition specified in the RHS from the scope culture.remove_culture_tradition = tradition_court_eunuchs
| Add random available innovation<culture> = { add_random_innovation = culture_group_military/culture_group_civic/culture_group_regional/yes }
| <pre></pre>
| <pre></pre>
| culture
| culture
|-
|-
| remove_innovation
| add_random_valid_tradition
| Remove innovation from a culture. remove_innovation = innovation_key
| Adds one random valid tradition to a culture. Target character provides context for can_pick and is_shown. If this would put the culture over the tradition limit, an error is loggedadd_random_valid_tradition = scope:character
| <pre></pre>
| <pre></pre>
| culture
| culture
| character
|-
|-
| remove_random_culture_tradition
| add_random_valid_tradition_replace_if_necessary
| Removes a random cultural tradition from the scope culture.remove_random_culture_tradition = yes
| Adds one random valid tradition to a culture. Target character provides context for can_pick and is_shown. If this would put the culture over the tradition limit, a random existing tradition is removedadd_random_valid_tradition_replace_if_necessary = scope:character
| <pre></pre>
| <pre></pre>
| culture
| character
|-
| change_cultural_acceptance
| Changes cultural acceptance with the target culture
| <pre>change_cultural_acceptance = {
target = <culture>
value = script value
desc = dynamic desc. Description that'll show when hovering over the acceptance tooltip in the culture window
}</pre>
| culture
| culture
|-
|-
| reset_culture_creation_date
| clear_culture_traditions
| Sets the culture creation date to be todays datereset_culture_creation_date = yes
| Removes all cultural traditions from the scope culture.clear_culture_traditions = yes
| <pre></pre>
| <pre></pre>
| culture
| culture
|-
|-
| set_cultural_acceptance
| copy_all_traditions_from
| Sets cultural acceptance with the target culture
| Replaces all traditions of scoped culture with traditions from the given culturecopy_all_traditions_from = scope:target_culture
| <pre>set_cultural_accpetance = { target = <culture> value = script value }</pre>
| <pre></pre>
| culture
| culture
| culture
|
|-
|-
| set_culture_name
| every_culture_county
| Permanently sets the name of the scope culture to the parsed text from the provided localization string.
| Iterate through all counties of the culture
| <pre>Like 'set_title_name', the new name is static and unchanging (i.e., if the localization key provided is 'Neo-[old_culture.GetName]' and the old culture is French, the new name is just be saved as a simple string, 'Neo-French', so that if/when the old_culture scope is cleaned up the localization does not break.set_culture_name = {
| <pre>every_culture_county = { limit = { <triggers> } <effects> }</pre>
noun = dynamic description
collective_noun = dynamic description
prefix = dynamic description
}</pre>
| culture
| culture
| landed title
|-
|-
| set_culture_pillar
| every_culture_duchy
| Adds the current pillar specified in the RHS to the scope culture, replacing the pillar in the matching slot.set_culture_pillar = ethos_warmonger
| Iterate through all duchies of the culture (duchies with at least one county of the culture
| <pre></pre>
| <pre>every_culture_duchy = { limit = { <triggers> } <effects> }</pre>
| culture
| culture
| landed title
|-
|-
| set_ethos_from
| every_culture_empire
| Set the ethos from the RHS on the scope culture.set_ethos_from = culture:norwegian
| Iterate through all empires of the culture (empires with at least one county of the culture
| <pre></pre>
| <pre>every_culture_empire = { limit = { <triggers> } <effects> }</pre>
| culture
| culture
| landed title
|-
| every_culture_kingdom
| Iterate through all kingdoms of the culture (kingdoms with at least one county of the culture
| <pre>every_culture_kingdom = { limit = { <triggers> } <effects> }</pre>
| culture
| culture
| landed title
|-
|-
| set_heritage_from
| every_parent_culture
| Set the heritage from the RHS on the scope culture.set_heritage_from = culture:norwegian
| Iterate through all parent cultures
| <pre></pre>
| <pre>every_parent_culture = { limit = { <triggers> } <effects> }</pre>
| culture
| culture
| culture
| culture
|-
|-
| set_language_from
| every_parent_culture_or_above
| Set the language from the RHS on the scope culture.set_language_from = culture:norwegian
| Iterate through all parent cultures or above
| <pre></pre>
| <pre>every_parent_culture_or_above = { limit = { <triggers> } <effects> }</pre>
| culture
| culture
| culture
| culture
|-
|-
| set_martial_custom_from
| get_all_innovations_from
| Set the martial custom from the RHS on the scope culture.set_martial_custom_from = culture:norwegian
| Discover all innovations from the target culture
| <pre></pre>
| <pre>get_all_innovations_from = <culture></pre>
| culture
| culture
| culture
| culture
|-
|-
| set_name_list
| get_random_innovation_from
| Remove all existing name lists then adds the specified name list to the culture
| Get random available innovation from another culture
| <pre><culture> = { set_name_list = name }</pre>
| <pre></pre>
| culture
| culture
|-
|-
| end_story
| join_era
| Ends a story and executes it's on_end effect, the story can no longer be accessed after this
| Joins all culture eras up to and including the given one
| <pre></pre>
| <pre>join_era = culture_era_type</pre>
| story cycle
| culture
|-
|-
| make_story_owner
| leave_era
| = character_target  makes the character the new owner of the story
| Leaves all culture eras down to and including the given one
| <pre></pre>
| <pre>leave_era = culture_era_type</pre>
| story cycle
| culture
| character
|-
| change_war_chest_gold
| Changes the amount of gold in the war chest by the given amount. change_war_chest_gold = script value
| <pre></pre>
| great holy war
|-
|-
| change_war_chest_piety
| ordered_culture_county
| Changes the amount of piety in the war chest by the given amount. change_war_chest_piety = script value
| Iterate through all counties of the culture
| <pre></pre>
| <pre>ordered_culture_county = {
| great holy war
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| culture
| landed title
|-
|-
| change_war_chest_prestige
| ordered_culture_duchy
| Changes the amount of prestige in the war chest by the given amount. change_war_chest_prestige = script value
| Iterate through all duchies of the culture (duchies with at least one county of the culture
| <pre></pre>
| <pre>ordered_culture_duchy = {
| great holy war
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| culture
| landed title
|-
|-
| divide_war_chest
| ordered_culture_empire
| The scoped GHW gives out its war-chest in full or in part.
| Iterate through all empires of the culture (empires with at least one county of the culture
| <pre>divide_war_chest = {
| <pre>ordered_culture_empire = {
defenders = yes (default to attackers instead)
limit = { <triggers> }
faction = script value (default 1 for 100%)
order_by = script_value
gold = no (default = yes)
position = int
piety = no (default = yes)
min = int
prestige = no (default = yes)
max = script_value
}</pre>
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| great holy war
<effects> }</pre>
| culture
| landed title
|-
|-
| do_ghw_title_handout
| ordered_culture_kingdom
| Hands out titles in the target kingdom to the GHW attacker beneficiaries. Will vassalize people based on dejure liege within the taken kingdom. Will refill county garrisons and levies. do_ghw_title_handout = scope:title_and_vassal_change
| Iterate through all kingdoms of the culture (kingdoms with at least one county of the culture
| <pre></pre>
| <pre>ordered_culture_kingdom = {
| great holy war
| title and vassal change
|-
| every_pledged_attacker
| Iterate through all pledged attackers within a great holy war
| <pre>every_pledged_attacker = { limit = { <triggers> } <effects> }</pre>
| great holy war
| character
|-
| every_pledged_defender
| Iterate through all pledged defenders within a great holy war
| <pre>every_pledged_defender = { limit = { <triggers> } <effects> }</pre>
| great holy war
| character
|-
| ordered_pledged_attacker
| Iterate through all pledged attackers within a great holy war
| <pre>ordered_pledged_attacker = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,021行: 第2,244行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| great holy war
| culture
| character
| landed title
|-
|-
| ordered_pledged_defender
| ordered_parent_culture
| Iterate through all pledged defenders within a great holy war
| Iterate through all parent cultures
| <pre>ordered_pledged_defender = {
| <pre>ordered_parent_culture = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,034行: 第2,257行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| great holy war
| culture
| character
| culture
|-
|-
| pledge_attacker
| ordered_parent_culture_or_above
| The target character pledges themselves as an attacker in the GHW. Must be of the same faith as the GHW declarer. pledge_attacker = some character
| Iterate through all parent cultures or above
| <pre></pre>
| <pre>ordered_parent_culture_or_above = {
| great holy war
limit = { <triggers> }
| character
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| culture
| culture
|-
|-
| pledge_defender
| random_culture_county
| The target character pledges themselves as a defender in the GHW. Must be of the same faith as the GHW target. pledge_defender = some character
| Iterate through all counties of the culture
| <pre></pre>
| <pre>random_culture_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| great holy war
| culture
| character
| landed title
|-
|-
| random_pledged_attacker
| random_culture_duchy
| Iterate through all pledged attackers within a great holy war
| Iterate through all duchies of the culture (duchies with at least one county of the culture
| <pre>random_pledged_attacker = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_culture_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| great holy war
| culture
| character
| landed title
|-
|-
| random_pledged_defender
| random_culture_empire
| Iterate through all pledged defenders within a great holy war
| Iterate through all empires of the culture (empires with at least one county of the culture
| <pre>random_pledged_defender = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_culture_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| great holy war
| culture
| character
| landed title
|-
|-
| reset_designated_winner
| random_culture_kingdom
| The GHW stops having a designated winner. reset_designated_winner = yes
| Iterate through all kingdoms of the culture (kingdoms with at least one county of the culture
| <pre></pre>
| <pre>random_culture_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| great holy war
| culture
| landed title
|-
|-
| set_designated_winner
| random_parent_culture
| The target character becomes the designated winner of the GHW. set_designated_winner = some character
| Iterate through all parent cultures
| <pre></pre>
| <pre>random_parent_culture = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| great holy war
| culture
| character
| culture
|-
|-
| set_great_holy_war_target
| random_parent_culture_or_above
| Sets the target of the great holy war.
| Iterate through all parent cultures or above
| <pre>set_great_holy_war_target = { target_character = someone target_title = some title }</pre>
| <pre>random_parent_culture_or_above = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| great holy war
| culture
| culture
|-
|-
| set_war_declarer
| remove_culture_tradition
| The target character becomes the character that should declare war instead of the religious head. set_war_declarer = some character
| Removes the cultural tradition specified in the RHS from the scope culture.remove_culture_tradition = tradition_court_eunuchs
| <pre></pre>
| <pre></pre>
| great holy war
| culture
| character
|-
|-
| start_ghw_war
| remove_innovation
| Starts the GHW war. start_ghw_war = undirected_great_holy_war
| Remove innovation from a culture. remove_innovation = innovation_key
| <pre></pre>
| <pre></pre>
| great holy war
| culture
|-
|-
| unpledge_attacker
| remove_random_culture_tradition
| The target character removes their pledge as an attacker in the GHW. unpledge_attacker = some character
| Removes a random cultural tradition from the scope culture.remove_random_culture_tradition = yes
| <pre></pre>
| <pre></pre>
| great holy war
| culture
| character
|-
|-
| unpledge_defender
| reset_culture_creation_date
| The target character removes their pledge as a defender in the GHW. unpledge_defender = some character
| Sets the culture creation date to be todays datereset_culture_creation_date = yes
| <pre></pre>
| <pre></pre>
| great holy war
| culture
| character
|-
| activate_holy_site
| Activate an inactive holy site<faith_scope> = { activate_holy_site = <holy_site_name> }
| <pre></pre>
| faith
|-
|-
| add_doctrine
| set_cultural_acceptance
| Add doctrine to faith<faith_scope> = { add_doctrine = <doctrine_name> }
| Sets cultural acceptance with the target culture
| <pre></pre>
| <pre>set_cultural_accpetance = { target = <culture> value = script value }</pre>
| faith
| culture
|-
|-
| change_fervor
| set_culture_name
| Changes the fervor of the faith by the given value. change_fervor = script value
| Permanently sets the name of the scope culture to the parsed text from the provided localization string.
| <pre></pre>
| <pre>Like 'set_title_name', the new name is static and unchanging (i.e., if the localization key provided is 'Neo-[old_culture.GetName]' and the old culture is French, the new name is just be saved as a simple string, 'Neo-French', so that if/when the old_culture scope is cleaned up the localization does not break.set_culture_name = {
| faith
noun = dynamic description
collective_noun = dynamic description
prefix = dynamic description
}</pre>
| culture
|-
|-
| deactivate_holy_site
| set_culture_pillar
| Deactivate an active holy site<faith_scope> = { deactivate_holy_site = <holy_site_name> }
| Adds the current pillar specified in the RHS to the scope culture, replacing the pillar in the matching slot.set_culture_pillar = ethos_warmonger
| <pre></pre>
| <pre></pre>
| faith
| culture
|-
|-
| every_defensive_great_holy_wars
| set_ethos_from
| Iterate through all great holy wars this faith is defending against
| Set the ethos from the RHS on the scope culture.set_ethos_from = culture:norwegian
| <pre>every_defensive_great_holy_wars = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| faith
| culture
| great holy war
| culture
|-
|-
| every_faith_character
| set_heritage_from
| Iterate through characters of the scoped faith
| Set the heritage from the RHS on the scope culture.set_heritage_from = culture:norwegian
| <pre>every_faith_character = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| faith
| culture
| character
| culture
|-
|-
| every_faith_holy_order
| set_language_from
| Iterate through all holy orders of the faith
| Set the language from the RHS on the scope culture.set_language_from = culture:norwegian
| <pre>every_faith_holy_order = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| faith
| culture
| holy order
| culture
|-
|-
| every_faith_playable_ruler
| set_martial_custom_from
| Iterate through playable rulers of the scoped faith
| Set the martial custom from the RHS on the scope culture.set_martial_custom_from = culture:norwegian
| <pre>every_faith_playable_ruler = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| faith
| culture
| character
| culture
|-
|-
| every_faith_ruler
| set_name_list
| Iterate through rulers of the scoped faith
| Remove all existing name lists then adds the specified name list to the culture
| <pre>every_faith_ruler = { limit = { <triggers> } <effects> }</pre>
| <pre><culture> = { set_name_list = name }</pre>
| faith
| culture
|
|-
| end_story
| Ends a story and executes it's on_end effect, the story can no longer be accessed after this
| <pre></pre>
| story cycle
|
|-
| make_story_owner
|  = character_target  makes the character the new owner of the story
| <pre></pre>
| story cycle
| character
| character
|-
|-
| every_holy_site
| change_war_chest_gold
| Iterate through all holy site baronies of a faith
| Changes the amount of gold in the war chest by the given amount. change_war_chest_gold = script value
| <pre>every_holy_site = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| faith
| great holy war
| landed title
|
|-
| change_war_chest_piety
| Changes the amount of piety in the war chest by the given amount. change_war_chest_piety = script value
| <pre></pre>
| great holy war
|-
|-
| ordered_defensive_great_holy_wars
| change_war_chest_prestige
| Iterate through all great holy wars this faith is defending against
| Changes the amount of prestige in the war chest by the given amount. change_war_chest_prestige = script value
| <pre>ordered_defensive_great_holy_wars = {
| <pre></pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| faith
| great holy war
| great holy war
|
|-
|-
| ordered_faith_character
| divide_war_chest
| Iterate through characters of the scoped faith
| The scoped GHW gives out its war-chest in full or in part.
| <pre>ordered_faith_character = {
| <pre>divide_war_chest = {
limit = { <triggers> }
defenders = yes (default to attackers instead)
order_by = script_value
faction = script value (default 1 for 100%)
position = int
gold = no (default = yes)
min = int
piety = no (default = yes)
max = script_value
prestige = no (default = yes)
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
}</pre>
<effects> }</pre>
| great holy war
| faith
|
|-
| do_ghw_title_handout
| Hands out titles in the target kingdom to the GHW attacker beneficiaries. Will vassalize people based on dejure liege within the taken kingdom. Will refill county garrisons and levies. do_ghw_title_handout = scope:title_and_vassal_change
| <pre></pre>
| great holy war
| title and vassal change
|-
| every_pledged_attacker
| Iterate through all pledged attackers within a great holy war
| <pre>every_pledged_attacker = { limit = { <triggers> } <effects> }</pre>
| great holy war
| character
| character
|-
|-
| ordered_faith_holy_order
| every_pledged_defender
| Iterate through all holy orders of the faith
| Iterate through all pledged defenders within a great holy war
| <pre>ordered_faith_holy_order = {
| <pre>every_pledged_defender = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| great holy war
order_by = script_value
| character
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| faith
| holy order
|-
|-
| ordered_faith_playable_ruler
| ordered_pledged_attacker
| Iterate through playable rulers of the scoped faith
| Iterate through all pledged attackers within a great holy war
| <pre>ordered_faith_playable_ruler = {
| <pre>ordered_pledged_attacker = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,212行: 第2,455行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| faith
| great holy war
| character
| character
|-
|-
| ordered_faith_ruler
| ordered_pledged_defender
| Iterate through rulers of the scoped faith
| Iterate through all pledged defenders within a great holy war
| <pre>ordered_faith_ruler = {
| <pre>ordered_pledged_defender = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,225行: 第2,468行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| faith
| great holy war
| character
| character
|-
|-
| ordered_holy_site
| pledge_attacker
| Iterate through all holy site baronies of a faith
| The target character pledges themselves as an attacker in the GHW. Must be of the same faith as the GHW declarer. pledge_attacker = some character
| <pre>ordered_holy_site = {
| <pre></pre>
limit = { <triggers> }
| great holy war
order_by = script_value
| character
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| faith
| landed title
|-
|-
| random_defensive_great_holy_wars
| pledge_defender
| Iterate through all great holy wars this faith is defending against
| The target character pledges themselves as a defender in the GHW. Must be of the same faith as the GHW target. pledge_defender = some character
| <pre>random_defensive_great_holy_wars = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre></pre>
| faith
| great holy war
| great holy war
| character
|-
|-
| random_faith_character
| random_pledged_attacker
| Iterate through characters of the scoped faith
| Iterate through all pledged attackers within a great holy war
| <pre>random_faith_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_pledged_attacker = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| faith
| great holy war
| character
| character
|-
|-
| random_faith_holy_order
| random_pledged_defender
| Iterate through all holy orders of the faith
| Iterate through all pledged defenders within a great holy war
| <pre>random_faith_holy_order = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_pledged_defender = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| faith
| great holy war
| holy order
|-
| random_faith_playable_ruler
| Iterate through playable rulers of the scoped faith
| <pre>random_faith_playable_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| faith
| character
| character
|-
|-
| random_faith_ruler
| reset_designated_winner
| Iterate through rulers of the scoped faith
| The GHW stops having a designated winner. reset_designated_winner = yes
| <pre>random_faith_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre></pre>
| faith
| great holy war
| character
|-
|-
| random_holy_site
| set_designated_winner
| Iterate through all holy site baronies of a faith
| The target character becomes the designated winner of the GHW. set_designated_winner = some character
| <pre>random_holy_site = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre></pre>
| faith
| great holy war
| landed title
| character
|-
| set_great_holy_war_target
| Sets the target of the great holy war.
| <pre>set_great_holy_war_target = { target_character = someone target_title = some title }</pre>
| great holy war
|
|-
| set_war_declarer
| The target character becomes the character that should declare war instead of the religious head. set_war_declarer = some character
| <pre></pre>
| great holy war
| character
|-
|-
| remove_doctrine
| start_ghw_war
| Remove doctrine from faith<faith_scope> = { remove_doctrine = <doctrine_name> }
| Starts the GHW war. start_ghw_war = undirected_great_holy_war
| <pre></pre>
| <pre></pre>
| faith
| great holy war
|-
|-
| remove_religious_head_title
| unpledge_attacker
| Removes the religious head title of the faith
| The target character removes their pledge as an attacker in the GHW. unpledge_attacker = some character
| <pre>remove_religious_head_title = yes</pre>
| <pre></pre>
| faith
| great holy war
| character
|-
|-
| set_religious_head_title
| unpledge_defender
| Sets the religious head title of the faith to the given title. set_religious_head_title = scope
| The target character removes their pledge as a defender in the GHW. unpledge_defender = some character
| <pre></pre>
| <pre></pre>
| faith
| great holy war
| landed title
| character
|-
|-
| start_great_holy_war
| activate_holy_site
| Starts a great holy war.
| Activate an inactive holy site<faith_scope> = { activate_holy_site = <holy_site_name> }
| <pre>start_great_holy_war = {target_character = someonetarget_title = some titledelay = script value # Number of days until the war should startwar = some war # Optional. Will make this a directed GHW instead of undirected, and tie it to this specific war}</pre>
| <pre></pre>
| faith
| faith
|-
|-
| add_building
| add_doctrine
| Add building to the province<province> = { add_building = <building_name> }
| Add doctrine to faith<faith_scope> = { add_doctrine = <doctrine_name> }
| <pre></pre>
| <pre></pre>
| province
| faith
|-
|-
| add_building_slot
| change_fervor
| Add building slot to the province
| Changes the fervor of the faith by the given value. change_fervor = script value
| <pre></pre>
| <pre></pre>
| province
| faith
|-
|-
| add_province_modifier
| deactivate_holy_site
| Add a modifier to a province
| Deactivate an active holy site<faith_scope> = { deactivate_holy_site = <holy_site_name> }
| <pre>add_province_modifier = name
add_province_modifier = { modifier = name days/weeks/months/years = int }
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier</pre>
| province
|
|-
| add_special_building
| Add a special building to the province (will also add/change a special slot if needed)
| <pre></pre>
| <pre></pre>
| province
| faith
|-
|-
| add_special_building_slot
| every_defensive_great_holy_wars
| Add a special building slot to the province<province> = { add_special_building_slot = <building_name> }
| Iterate through all great holy wars this faith is defending against
| <pre></pre>
| <pre>every_defensive_great_holy_wars = { limit = { <triggers> } <effects> }</pre>
| province
| faith
| great holy war
|-
|-
| begin_create_holding
| every_faith_character
| Start construction of the specified holding type. By default player won't get anything if manually cancels the construction
| Iterate through characters of the scoped faith
| <pre>scope:my_province = {
| <pre>every_faith_character = { limit = { <triggers> } <effects> }</pre>
begin_create_holding = castle_holding
| faith
}
| character
Optionally refund cost can be set to some value.
scope:my_province = {
begin_create_holding = {
type = castle_holding
refund_cost = {
gold = 100
}
}
}</pre>
| province
|-
|-
| generate_building
| every_faith_holy_order
| Adds a random building to the province, using the AI's construction logic<province> = { generate_building = yes }
| Iterate through all holy orders of the faith
| <pre></pre>
| <pre>every_faith_holy_order = { limit = { <triggers> } <effects> }</pre>
| province
| faith
| holy order
|-
|-
| refill_garrison
| every_faith_playable_ruler
| The scoped province gets its garrison refilled. refill_levy = yes/no
| Iterate through playable rulers of the scoped faith
| <pre></pre>
| <pre>every_faith_playable_ruler = { limit = { <triggers> } <effects> }</pre>
| province
| faith
| character
|-
|-
| refill_levy
| every_faith_ruler
| The scoped province gets its levy refilled. refill_levy = yes/no
| Iterate through rulers of the scoped faith
| <pre></pre>
| <pre>every_faith_ruler = { limit = { <triggers> } <effects> }</pre>
| province
| faith
| character
|-
|-
| remove_all_province_modifier_instances
| every_holy_site
| Remove all instances of a modifier from a province
| Iterate through all holy site baronies of a faith
| <pre>remove_all_province_modifier_instances = name</pre>
| <pre>every_holy_site = { limit = { <triggers> } <effects> }</pre>
| province
| faith
| landed title
|-
|-
| remove_building
| ordered_defensive_great_holy_wars
| Remove building from the province<province> = { remove_building = <building_name> }
| Iterate through all great holy wars this faith is defending against
| <pre></pre>
| <pre>ordered_defensive_great_holy_wars = {
| province
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| faith
| great holy war
|-
|-
| remove_holding
| ordered_faith_character
| Removes the holding in scoped province, cannot remove capital holdings
| Iterate through characters of the scoped faith
| <pre></pre>
| <pre>ordered_faith_character = {
| province
limit = { <triggers> }
|
order_by = script_value
|-
position = int
| remove_province_modifier
min = int
| Remove a modifier from a province
max = script_value
| <pre>remove_province_modifier = name</pre>
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| province
<effects> }</pre>
|
| faith
|-
| set_holding_type
| Changes the scoped province's holding to another type, removing all buildings that are invalid for the new holding.
| <pre>This might also allow to construct a new holding in an empty province, but it is untested.</pre>
| province
|
|-
| spawn_activity
| spawns an activity, spawn_activity = { owner = X type = Y days/months/years = Z }, Z is expiration time can be a value or an inclusive "{A B}" interval from which the value will be picked
| <pre></pre>
| province
|
|-
| every_killed_character
| Iterate through all kills of a character
| <pre>every_killed_character = { limit = { <triggers> } <effects> }</pre>
| character, artifact
| character
| character
|-
|-
| ordered_killed_character
| ordered_faith_holy_order
| Iterate through all kills of a character
| Iterate through all holy orders of the faith
| <pre>ordered_killed_character = {
| <pre>ordered_faith_holy_order = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,420行: 第2,633行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| character, artifact
| faith
| character
| holy order
|-
|-
| random_killed_character
| ordered_faith_playable_ruler
| Iterate through all kills of a character
| Iterate through playable rulers of the scoped faith
| <pre>random_killed_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_faith_playable_ruler = {
| character, artifact
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| faith
| character
| character
|-
|-
| add_scheme_modifier
| ordered_faith_ruler
| adds the specified scheme modifier, add_scheme_modifier = { type = X days = Y } (days are optional, the modifier will expire in Y days if specified)
| Iterate through rulers of the scoped faith
| <pre></pre>
| <pre>ordered_faith_ruler = {
| scheme
limit = { <triggers> }
|
order_by = script_value
|-
position = int
| add_scheme_progress
min = int
| Add progress to the scope scheme. (progress is in 0.0 - 100.0 range)
max = script_value
| <pre></pre>
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| scheme
<effects> }</pre>
|
| faith
|-
| end_scheme
| Ends a specific scheme and removes it without any other effect
| <pre></pre>
| scheme
|
|-
| every_scheme_agent
| Iterate through all agents in the scheme
| <pre>every_scheme_agent = { limit = { <triggers> } <effects> }</pre>
| scheme
| character
| character
|-
|-
| expose_scheme
| ordered_holy_site
| Exposes the scheme to the defender
| Iterate through all holy site baronies of a faith
| <pre></pre>
| <pre>ordered_holy_site = {
| scheme
|
|-
| expose_scheme_agent
| Exposes the target character as an agent of the current scheme
| <pre></pre>
| scheme
| character
|-
| ordered_scheme_agent
| Iterate through all agents in the scheme
| <pre>ordered_scheme_agent = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,475行: 第2,672行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| scheme
| faith
| character
| landed title
|-
|-
| random_scheme_agent
| random_defensive_great_holy_wars
| Iterate through all agents in the scheme
| Iterate through all great holy wars this faith is defending against
| <pre>random_scheme_agent = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_defensive_great_holy_wars = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| scheme
| faith
| great holy war
|-
| random_faith_character
| Iterate through characters of the scoped faith
| <pre>random_faith_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| faith
| character
|-
| random_faith_holy_order
| Iterate through all holy orders of the faith
| <pre>random_faith_holy_order = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| faith
| holy order
|-
| random_faith_playable_ruler
| Iterate through playable rulers of the scoped faith
| <pre>random_faith_playable_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| faith
| character
|-
| random_faith_ruler
| Iterate through rulers of the scoped faith
| <pre>random_faith_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| faith
| character
| character
|-
|-
| remove_scheme_modifier
| random_holy_site
| removes the specified scheme modifier
| Iterate through all holy site baronies of a faith
| <pre></pre>
| <pre>random_holy_site = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| scheme
| faith
| landed title
|-
|-
| scheme_freeze_days
| remove_doctrine
| scheme_freeze_days = X freezes the scheme for X days (0 unfreezes the scheme)
| Remove doctrine from faith<faith_scope> = { remove_doctrine = <doctrine_name> }
| <pre></pre>
| <pre></pre>
| scheme
| faith
|-
|-
| change_inspiration_progress
| remove_religious_head_title
| change_progress = int
| Removes the religious head title of the faith
| <pre>Changes the progress of the scoped inspiration</pre>
| <pre>remove_religious_head_title = yes</pre>
| inspiration
| faith
|-
|-
| invest_gold
| set_religious_head_title
| invest_gold = value
| Sets the religious head title of the faith to the given title. set_religious_head_title = scope
| <pre>Invests gold into the scoped inspiration from its sponsor, it handles the removal of the gold from the sponsor, must be a positive value</pre>
| <pre></pre>
| inspiration
| faith
| landed title
|-
| start_great_holy_war
| Starts a great holy war.
| <pre>start_great_holy_war = {target_character = someonetarget_title = some titledelay = script value # Number of days until the war should startwar = some war # Optional. Will make this a directed GHW instead of undirected, and tie it to this specific war}</pre>
| faith
|-
|-
| add_secret_participant
| add_building
| Adds an participant to the secret
| Add building to the province<province> = { add_building = <building_name> }
| <pre></pre>
| <pre></pre>
| secret
| province
| character
|-
|-
| disable_exposure_by
| add_building_slot
| Forbids the target character from exposing the secret, disable_exposure_by = target_character
| Add building slot to the province
| <pre></pre>
| <pre></pre>
| secret
| province
| character
|-
|-
| every_secret_knower
| add_province_modifier
| Iterate through all characters who know the secret
| Add a modifier to a province
| <pre>every_secret_knower = { limit = { <triggers> } <effects> }</pre>
| <pre>add_province_modifier = name
| secret
add_province_modifier = { modifier = name days/weeks/months/years = int }
| character
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier</pre>
| province
|-
|-
| every_secret_participant
| add_special_building
| Iterate through participants in a secret
| Add a special building to the province (will also add/change a special slot if needed)
| <pre>every_secret_participant = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| secret
| province
| character
|-
|-
| expose_secret
| add_special_building_slot
| Exposes the scope secret
| Add a special building slot to the province<province> = { add_special_building_slot = <building_name> }
| <pre></pre>
| <pre></pre>
| secret
| province
| character
|-
|-
| ordered_secret_knower
| begin_create_holding
| Iterate through all characters who know the secret
| Start construction of the specified holding type. By default player won't get anything if manually cancels the construction
| <pre>ordered_secret_knower = {
| <pre>scope:my_province = {
limit = { <triggers> }
begin_create_holding = castle_holding
order_by = script_value
}
position = int
Optionally refund cost can be set to some value.
min = int
scope:my_province = {
max = script_value
begin_create_holding = {
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
type = castle_holding
<effects> }</pre>
refund_cost = {
| secret
gold = 100
| character
}
}
}</pre>
| province
|-
|-
| ordered_secret_participant
| generate_building
| Iterate through participants in a secret
| Adds a random building to the province, using the AI's construction logic<province> = { generate_building = yes }
| <pre>ordered_secret_participant = {
| <pre></pre>
limit = { <triggers> }
| province
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| secret
| character
|-
|-
| random_secret_knower
| refill_garrison
| Iterate through all characters who know the secret
| The scoped province gets its garrison refilled. refill_levy = yes/no
| <pre>random_secret_knower = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| secret
| character
|-
| random_secret_participant
| Iterate through participants in a secret
| <pre>random_secret_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| secret
| character
|-
| remove_secret
| Removes the scope secret
| <pre></pre>
| <pre></pre>
| secret
| province
|-
|-
| reveal_to
| refill_levy
| Reveals the scope secret to the target character
| The scoped province gets its levy refilled. refill_levy = yes/no
| <pre></pre>
| <pre></pre>
| secret
| province
| character
|
|-
| remove_all_province_modifier_instances
| Remove all instances of a modifier from a province
| <pre>remove_all_province_modifier_instances = name</pre>
| province
|-
|-
| set_secret_owner
| remove_building
| Sets a new owner for the secret
| Remove building from the province<province> = { remove_building = <building_name> }
| <pre></pre>
| <pre></pre>
| secret
| province
| character
|-
|-
| spend_by
| remove_holding
| Spends the scope secret, spend_by = target_character
| Removes the holding in scoped province, cannot remove capital holdings
| <pre></pre>
| <pre></pre>
| secret
| province
| character
|-
| add_dynasty_modifier
| Add a modifier to a dynasty
| <pre>add_dynasty_modifier = name
add_dynasty_modifier = { modifier = name days/weeks/months/years = int }
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier</pre>
| dynasty
|-
|-
| add_dynasty_perk
| remove_province_modifier
| Adds dynasty perk. add_dynasty_perk = key
| Remove a modifier from a province
| <pre></pre>
| <pre>remove_province_modifier = name</pre>
| dynasty
| province
|-
|-
| add_dynasty_prestige
| set_holding_type
| adds dynasty prestige
| Changes the scoped province's holding to another type, removing all buildings that are invalid for the new holding.
| <pre></pre>
| <pre>This might also allow to construct a new holding in an empty province, but it is untested.</pre>
| dynasty
| province
|-
|-
| add_dynasty_prestige_level
| spawn_activity
| adds dynasty prestige levels
| spawns an activity, spawn_activity = { owner = X type = Y days/months/years = Z }, Z is expiration time can be a value or an inclusive "{A B}" interval from which the value will be picked
| <pre></pre>
| <pre></pre>
| dynasty
| province
|-
|-
| every_dynasty_member
| every_killed_character
| Iterate through all dynasty members
| Iterate through all kills of a character
| <pre>every_dynasty_member = { limit = { <triggers> } <effects> }</pre>
| <pre>every_killed_character = { limit = { <triggers> } <effects> }</pre>
| dynasty
| character, artifact
| character
| character
|-
|-
| ordered_dynasty_member
| ordered_killed_character
| Iterate through all dynasty members
| Iterate through all kills of a character
| <pre>ordered_dynasty_member = {
| <pre>ordered_killed_character = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,642行: 第2,854行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| dynasty
| character, artifact
| character
| character
|-
|-
| random_dynasty_member
| random_killed_character
| Iterate through all dynasty members
| Iterate through all kills of a character
| <pre>random_dynasty_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>random_killed_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| dynasty
| character, artifact
| character
| character
|-
|-
| remove_all_dynasty_modifier_instances
| activate_struggle_catalyst
| Remove all instances of a modifier from a dynasty
| Activate a catalyst
| <pre>remove_all_dynasty_modifier_instances = name</pre>
| <pre>activate_struggle_catalyst = { catalyst = X character = Y} where X is a catalystY is scope:character # optionalsimplified: activate_struggle_catalyst = <catalyst></pre>
| dynasty
| struggle
|-
|-
| remove_dynasty_modifier
| change_struggle_phase
| Remove a modifier from a dynasty
| Change the phase from the current one to a listed scripted phase
| <pre>remove_dynasty_modifier = name</pre>
| <pre>change_phase = X where X is a struggle phase type</pre>
| dynasty
| struggle
|-
|-
| remove_dynasty_perk
| end_struggle
| Removes dynasty perk. remove_dynasty_perk = key
| End a struggle
| <pre></pre>
| <pre>end_struggle = yes</pre>
| dynasty
| struggle
|-
|-
| set_dynasty_name
| every_interloper_ruler
| Sets dynasty name
| Iterate through all characters that are interloper in a struggle.
| <pre>set_dynasty_name=loc_key</pre>
| <pre>every_interloper_ruler = { limit = { <triggers> } <effects> }</pre>
| dynasty
| struggle
| character
|-
|-
| every_leased_title
| every_involved_ruler
| Iterate through all titles leased to a holy order
| Iterate through all characters that are involved in a struggle.
| <pre>every_leased_title = { limit = { <triggers> } <effects> }</pre>
| <pre>every_involved_ruler = { limit = { <triggers> } <effects> }</pre>
| holy order
| struggle
| landed title
| character
|-
|-
| ordered_leased_title
| ordered_interloper_ruler
| Iterate through all titles leased to a holy order
| Iterate through all characters that are interloper in a struggle.
| <pre>ordered_leased_title = {
| <pre>ordered_interloper_ruler = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,691行: 第2,903行:
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
<effects> }</pre>
| holy order
| struggle
| landed title
| character
|-
|-
| random_leased_title
| ordered_involved_ruler
| Iterate through all titles leased to a holy order
| Iterate through all characters that are involved in a struggle.
| <pre>random_leased_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_involved_ruler = {
| holy order
limit = { <triggers> }
| landed title
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| struggle
| character
|-
| random_interloper_ruler
| Iterate through all characters that are interloper in a struggle.
| <pre>random_interloper_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| struggle
| character
|-
|-
| add_diplomacy_skill
| random_involved_ruler
| Adds diplomacy skill
| Iterate through all characters that are involved in a struggle.
| <pre></pre>
| <pre>random_involved_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| struggle
| character
|-
|-
| add_focus_progress
| set_culture_as_involved
| Adds focus progress
| Set a culture as involved in the scoped Struggle.
| <pre></pre>
| <pre></pre>
| none
| struggle
| culture
|-
|-
| add_internal_flag
| set_culture_as_uninvolved
| adds effect to be read internally (no effect in the gamestate)
| Set a culture as uninvolved in the scoped Struggle.
| <pre></pre>
| <pre></pre>
| none
| struggle
| culture
|-
|-
| add_intrigue_skill
| set_faith_as_involved
| Adds intrigue skill
| Set a faith as involved in the scoped Struggle.
| <pre></pre>
| <pre></pre>
| none
| struggle
| faith
|-
|-
| add_learning_skill
| set_faith_as_uninvolved
| Adds learning skill
| Set a faith as uninvolved in the scoped Struggle.
| <pre></pre>
| <pre></pre>
| none
| struggle
| faith
|-
|-
| add_martial_skill
| add_scheme_modifier
| Adds martial skill
| adds the specified scheme modifier, add_scheme_modifier = { type = X days = Y } (days are optional, the modifier will expire in Y days if specified)
| <pre></pre>
| <pre></pre>
| none
| scheme
|-
|-
| add_prowess_skill
| add_scheme_progress
| Adds prowess skill
| Add progress to the scope scheme. (progress is in 0.0 - 100.0 range)
| <pre></pre>
| <pre></pre>
| none
| scheme
|-
|-
| add_stewardship_skill
| end_scheme
| Adds stewardship skill
| Ends a specific scheme and removes it without any other effect
| <pre></pre>
| <pre></pre>
| none
| scheme
|-
|-
| add_title_law
| every_scheme_agent
| add law to scoped title, overriding any current law from the same group. DOES NOT apply law change costs and effects.
| Iterate through all agents in the scheme
| <pre>add_title_law = princely_elective_succession_law</pre>
| <pre>every_scheme_agent = { limit = { <triggers> } <effects> }</pre>
| none
| scheme
| character
|-
| expose_scheme
| Exposes the scheme to the defender
| <pre></pre>
| scheme
|-
|-
| add_title_law_effects
| expose_scheme_agent
| add law to scoped title, overriding any current law from the same group. DOES apply law change costs and effects.
| Exposes the target character as an agent of the current scheme
| <pre>add_title_law = princely_elective_succession_law</pre>
| <pre></pre>
| none
| scheme
| character
|-
| ordered_scheme_agent
| Iterate through all agents in the scheme
| <pre>ordered_scheme_agent = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| scheme
| character
|-
| random_scheme_agent
| Iterate through all agents in the scheme
| <pre>random_scheme_agent = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| scheme
| character
|-
|-
| add_to_global_variable_list
| remove_scheme_modifier
| Adds the event target to a variable list
| removes the specified scheme modifier
| <pre>add_to_variable_list = { name = X target = Y }
| <pre></pre>
Where X is the name of the variable
| scheme
Where Y is an event target</pre>
| none
|-
|-
| add_to_list
| scheme_freeze_days
| Adds the current scope to an arbitrarily-named list (or creates the list if not already present) to be referenced later in the (unbroken) event chain
| scheme_freeze_days = X freezes the scheme for X days (0 unfreezes the scheme)
| <pre>add_to_list = <string> NOTE, if adding a permanent target to a temporary list, the whole list becomes permanent</pre>
| <pre></pre>
| none
| scheme
|-
|-
| add_to_local_variable_list
| change_inspiration_progress
| Adds the event target to a variable list
| change_progress = int
| <pre>add_to_variable_list = { name = X target = Y }
| <pre>Changes the progress of the scoped inspiration</pre>
Where X is the name of the variable
| inspiration
Where Y is an event target</pre>
| none
|-
|-
| add_to_temporary_list
| invest_gold
| Adds the current scope to an arbitrarily-named list (or creates the list if not already present) to be referenced later in the same effect
| invest_gold = value
| <pre>add_to_temporary_list = <string> NOTE, if adding a temporary target to a permanent list, the list will stay permanent</pre>
| <pre>Invests gold into the scoped inspiration from its sponsor, it handles the removal of the gold from the sponsor, must be a positive value</pre>
| none
| inspiration
|-
|-
| add_to_variable_list
| add_secret_participant
| Adds the event target to a variable list
| Adds an participant to the secret
| <pre>add_to_variable_list = { name = X target = Y }
| <pre></pre>
Where X is the name of the variable
| secret
Where Y is an event target</pre>
| character
| none
|-
|-
| assert_if
| disable_exposure_by
| Conditionally cause an assert during run time
| Forbids the target character from exposing the secret, disable_exposure_by = target_character
| <pre>assert_if = { limit = { X } text = Y }, where X is a trigger and Y is an optional string</pre>
| <pre></pre>
| none
| secret
| character
|-
|-
| assert_read
| every_secret_knower
| Conditionally cause an assert during read time
| Iterate through all characters who know the secret
| <pre>assert_read = X, where X is yes or the string to be printed in the assert</pre>
| <pre>every_secret_knower = { limit = { <triggers> } <effects> }</pre>
| none
| secret
| character
|-
|-
| break_betrothal
| every_secret_participant
| Breaks the betrothal between the scope character to the target character, break_betrothal = target
| Iterate through participants in a secret
| <pre></pre>
| <pre>every_secret_participant = { limit = { <triggers> } <effects> }</pre>
| none
| secret
| character
| character
|-
|-
| change_global_variable
| expose_secret
| Changes the value or a numeric variable
| Exposes the scope secret
| <pre>change_variable = { name = X operation = Y }
| <pre></pre>
Where X is the name of the numeric variable to modify
| secret
Where the valid operations are add, subtract, multiply, divide and modulo
| character
Where Y is a fixed point value, script value or event target of a value type</pre>
| none
|-
|-
| change_local_variable
| ordered_secret_knower
| Changes the value or a numeric variable
| Iterate through all characters who know the secret
| <pre>change_variable = { name = X operation = Y }
| <pre>ordered_secret_knower = {
Where X is the name of the numeric variable to modify
limit = { <triggers> }
Where the valid operations are add, subtract, multiply, divide and modulo
order_by = script_value
Where Y is a fixed point value, script value or event target of a value type</pre>
position = int
| none
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| secret
| character
|-
|-
| change_title_holder
| ordered_secret_participant
| = {
| Iterate through participants in a secret
| <pre>holder = 'Character that should get the title'
| <pre>ordered_secret_participant = {
change = 'previously created title_and_vassal_change', adds a title change, will not transfer vassalstake_baronies = yes # Optional; if set, will cause baronies to be taken (rather than vassalized) as well if this title is a countygovernment_base = character # Optional, if the character getting the title was unlanded, their new government will be based on the government of government_base. If no government_base is specified, the government will be based on holder's government.</pre>
limit = { <triggers> }
| none
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| secret
| character
|-
|-
| change_title_holder_include_vassals
| random_secret_knower
| = {
| Iterate through all characters who know the secret
| <pre>holder = 'Character that should get the title'
| <pre>random_secret_knower = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
change = 'previously created title_and_vassal_change', adds a title change, will transfer vassalstake_baronies = yes # Optional; if set, will cause baronies to be taken (rather than vassalized) as well if this title is a countygovernment_base = character # Optional, if the character getting the title was unlanded, their new government will be based on the government of government_base. If no government_base is specified, the government will be based on holder's government.</pre>
| secret
| none
| character
|-
| random_secret_participant
| Iterate through participants in a secret
| <pre>random_secret_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| secret
| character
|-
| remove_secret
| Removes the scope secret
| <pre></pre>
| secret
|-
|-
| change_variable
| reveal_to
| Changes the value or a numeric variable
| Reveals the scope secret to the target character
| <pre>change_variable = { name = X operation = Y }
| <pre></pre>
Where X is the name of the numeric variable to modify
| secret
Where the valid operations are add, subtract, multiply, divide and modulo
| character
Where Y is a fixed point value, script value or event target of a value type</pre>
|-
| none
| set_secret_owner
| Sets a new owner for the secret
| <pre></pre>
| secret
| character
|-
|-
| clamp_global_variable
| spend_by
| Clamps a variable the specified max and min
| Spends the scope secret, spend_by = target_character
| <pre>clamp_variable = { name = X max = Y min = Z }
| <pre></pre>
Where X is the name of the variable
| secret
Where Y and Z are script values</pre>
| character
| none
|-
|-
| clamp_local_variable
| add_dynasty_modifier
| Clamps a variable the specified max and min
| Add a modifier to a dynasty
| <pre>clamp_variable = { name = X max = Y min = Z }
| <pre>add_dynasty_modifier = name
Where X is the name of the variable
add_dynasty_modifier = { modifier = name days/weeks/months/years = int }
Where Y and Z are script values</pre>
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier</pre>
| none
| dynasty
|-
|-
| clamp_variable
| add_dynasty_perk
| Clamps a variable the specified max and min
| Adds dynasty perk. add_dynasty_perk = key
| <pre>clamp_variable = { name = X max = Y min = Z }
| <pre></pre>
Where X is the name of the variable
| dynasty
Where Y and Z are script values</pre>
| none
|-
|-
| clear_global_variable_list
| add_dynasty_prestige
| Empties the list
| adds dynasty prestige
| <pre>clear_variable_list = variable_name</pre>
| none
|
|-
| clear_local_variable_list
| Empties the list
| <pre>clear_variable_list = variable_name</pre>
| none
|
|-
| clear_saved_scope
| Clears a saved scope from the top scope
| <pre>save_scope_as = cool_scope -> clear_saved_scope = cool_scope</pre>
| none
|
|-
| clear_traits
| Removes all traits for the character. clear_traits = yes
| <pre></pre>
| <pre></pre>
| none
| dynasty
|-
|-
| clear_variable_list
| add_dynasty_prestige_level
| Empties the list
| adds dynasty prestige levels
| <pre>clear_variable_list = variable_name</pre>
| none
|
|-
| close_all_views
| Closes all views. close_all_views = yes
| <pre></pre>
| <pre></pre>
| none
| dynasty
|-
|-
| close_view
| every_dynasty_member
| Tries to close the defined view.
| Iterate through all dynasty members
| <pre>Take care to set player if effect is executed not through UI but through synchronized code. Else all the window will open for all players.
| <pre>every_dynasty_member = { limit = { <triggers> } <effects> }</pre>
close_view = {
| dynasty
   view = <view name>
| character
   player = scope:character # optional, else closes for all players who execute the effect
}simplified: close_view = <view name></pre>
| none
|-
|-
| copy_traits
| ordered_dynasty_member
| Adds all traits of the target to the character. Skips any traits that the character isn't allowed to have. Will not remove the character's existing traits. copy_traits = scope:character
| Iterate through all dynasty members
| <pre></pre>
| <pre>ordered_dynasty_member = {
| none
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| dynasty
| character
| character
|-
|-
| create_betrothal
| random_dynasty_member
| Betroth the scope character to the target character, create_betrothal = target (at least one of the characters need to not be adult)
| Iterate through all dynasty members
| <pre></pre>
| <pre>random_dynasty_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| dynasty
| character
| character
|-
|-
| create_betrothal_matrilineal
| remove_all_dynasty_modifier_instances
| Betroth the scope character to the target character matrilineally, create_betrothal_matrilineal = target (at least one of the characters need to not be adult)
| Remove all instances of a modifier from a dynasty
| <pre>remove_all_dynasty_modifier_instances = name</pre>
| dynasty
|
|-
| remove_dynasty_modifier
| Remove a modifier from a dynasty
| <pre>remove_dynasty_modifier = name</pre>
| dynasty
|
|-
| remove_dynasty_perk
| Removes dynasty perk. remove_dynasty_perk = key
| <pre></pre>
| <pre></pre>
| none
| dynasty
| character
|
|-
| set_dynasty_name
| Sets dynasty name
| <pre>set_dynasty_name=loc_key</pre>
| dynasty
|-
|-
| create_character
| every_leased_title
| Creates a character
| Iterate through all titles leased to a holy order
| <pre>
| <pre>every_leased_title = { limit = { <triggers> } <effects> }</pre>
save_event_target_as = flag - save the character as an event target
| holy order
save_temporary_event_target_as = flag - save the character as a temporary event target
| landed title
name =
|-
age =
| ordered_leased_title
gender = male/female/character scope
| Iterate through all titles leased to a holy order
gender_female_chance = script_value - Range (0..100)
| <pre>ordered_leased_title = {
opposite_gender = character scope
limit = { <triggers> }
trait = add this trait
order_by = script_value
random_traits_list = { count = { 1 5 } traitID = { some triggers } traitID = { some triggers } } - A number of traits specified by count (1 if not specified) will be picked from the traits that have their triggers met. Scopes are the same as where create_character is used. More than one grouping like this can be defined
position = int
random_traits = yes/no
min = int
health
max = script_value
fertility
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
mother
<effects> }</pre>
father
| holy order
real_father = (should only be set if the real father is not the same as father=)
| landed title
employer = will end up in this court, will become a pool character unless specified or father/mother is landed
|-
location = pool province; mutually exclusive with employer
| random_leased_title
template_character =
| Iterate through all titles leased to a holy order
faith, culture and dynasty are set from 1. template_character 2. father 3. mother 4. employer (not employer for dynasty) unless specified directly
| <pre>random_leased_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
faith = faith tag OR a faith scope
| holy order
random_faith = { catholic = { some triggers } cathar = { some triggers }. Random one where the triggers are met will be picked. Scopes are the same as where create_character is used
| landed title
random_faith_in_religion = religion tag OR a faith scope (there's no religion scope)
culture = culture name OR a culture scope
random_culture = { norse = { some triggers } norwegian = { some triggers }. Random one where the triggers are met will be picked. Scopes are the same as where create_character is used
random_culture_in_group = culture group name OR a culture scope (there's no group scope)
dynasty_house = dynasty house name OR a dynasty house scope
dynasty = generate/inherit/none - What to do if dynasty_house is not specified. generate by default.
martial/diplomacy/intrigue...  =  will get random unless specified
after_creation = { some effects } run after character is created. Scope starts off in the character, with the scope it was created in as PREV, and the same top scope and saved targets etc.</pre>
| none
|-
|-
| create_dynamic_title
| add_diplomacy_skill
| Creates a dynamic title
| Adds diplomacy skill
| <pre>The title will be saved to scope:new_titleusage:
| <pre></pre>
create_dynamic_title = {
tier = <tier>
name = key/dynamic description adjective = key/dynamic description (optional; name used if not specified)}</pre>
| none
| none
|-
|-
| create_holy_order
| add_focus_progress
| Create a new holy order
| Adds focus progress
| <pre>create_holy_order = {
| <pre></pre>
   leader = scope:a_character
   capital = scope:a_barony_title
   save_scope_as/save_temporary_scope_as = new_holy_order # optional way to get a reference to the new holy order
}</pre>
| none
| none
|-
|-
| create_title_and_vassal_change
| add_internal_flag
| starts a title and vassal change and saves it as a temporary event target
| adds effect to be read internally (no effect in the gamestate)
| <pre>create_title_and_vassal_change = {
| <pre></pre>
type = conquest (or other type)
save_scope_as = change (name of resulting saved scope)
add_claim_on_loss = yes (optional)
}</pre>
| none
| none
|-
|-
| custom_description
| add_intrigue_skill
| Wraps effects that get a custom description instead of the auto-generated one
| Adds intrigue skill
| <pre>custom_description = {
| <pre></pre>
text = <effect_localization_key>
subject = <optional subject scope> #defaults to current scope
object = <optional object scope>
value = <optional script value>
... effects ...
}</pre>
| none
| none
|-
|-
| custom_description_no_bullet
| add_learning_skill
| Wraps effects that get a custom description instead of the auto-generated one. Also ensures no bullet point appears
| Adds learning skill
| <pre>custom_description_no_bullet = {
text = <effect_localization_key>
subject = <optional subject scope> #defaults to current scope
object = <optional object scope>
value = <optional script value>
... effects ...
}</pre>
| none
|
|-
| custom_label
| just a tooltip, the scope as object (for grouping, localization). Can also be written as custom_label = { text = key subject = scope (optional) <hidden effects> }
| <pre></pre>
| <pre></pre>
| none
| none
|-
|-
| custom_tooltip
| add_martial_skill
| just a tooltip, the scope as subject (for grouping, localization). Can also be written as custom_tooltip = { text = key subject = scope (optional) <hidden effects> }
| Adds martial skill
| <pre></pre>
| <pre></pre>
| none
| none
|-
|-
| debug_log
| add_prowess_skill
| Log a string to the debug log when this effect executes, debug_log = message, the message can be a localization string with ROOT, SCOPE and PREV available
| Adds prowess skill
| <pre></pre>
| <pre></pre>
| none
| none
|-
|-
| debug_log_date
| add_stewardship_skill
| Logs the current date to the debug.log
| Adds stewardship skill
| <pre></pre>
| <pre></pre>
| none
| none
|-
|-
| debug_log_scopes
| add_title_law
| Log the current scope to the debug log when this effect executes yes = full scope info, no=only current scope
| add law to scoped title, overriding any current law from the same group. DOES NOT apply law change costs and effects.
| <pre></pre>
| <pre>add_title_law = princely_elective_succession_law</pre>
| none
|
|-
| add_title_law_effects
| add law to scoped title, overriding any current law from the same group. DOES apply law change costs and effects.
| <pre>add_title_law = princely_elective_succession_law</pre>
| none
| none
|-
|-
| debug_trigger_event
| add_to_global_variable_list
| Like trigger_event, except it'll print the trigger fulfillment and immediate effects of the event too
| Adds the event target to a variable list
| <pre></pre>
| <pre>add_to_variable_list = { name = X target = Y }
Where X is the name of the variable
Where Y is an event target</pre>
| none
| none
|-
|-
| destroy_artifact
| add_to_list
| Destroy given artifact
| Adds the current scope to an arbitrarily-named list (or creates the list if not already present) to be referenced later in the (unbroken) event chain
| <pre>destroy_artifact = artifact</pre>
| <pre>add_to_list = <string> NOTE, if adding a permanent target to a temporary list, the whole list becomes permanent</pre>
| none
| none
| artifact
|-
|-
| destroy_inspiration
| add_to_local_variable_list
| destroy_inspiration = inspiration
| Adds the event target to a variable list
| <pre>Destroys the targeted inspiration, do not use the destroyed scope after calling this since it will have been removed</pre>
| <pre>add_to_variable_list = { name = X target = Y }
Where X is the name of the variable
Where Y is an event target</pre>
| none
| none
| inspiration
|-
|-
| divorce
| add_to_temporary_list
| Divorces the scope character from the target character. divorce = target
| Adds the current scope to an arbitrarily-named list (or creates the list if not already present) to be referenced later in the same effect
| <pre></pre>
| <pre>add_to_temporary_list = <string> NOTE, if adding a temporary target to a permanent list, the list will stay permanent</pre>
| none
| none
| character
|-
|-
| duel
| add_to_variable_list
| duel effect that selects an effect based on comparing specified skill of a character to a value or another character's skill. Alternatively, the compare value can be scripted completely
| Adds the event target to a variable list
| <pre>duel = {
| <pre>add_to_variable_list = { name = X target = Y }
   skill = X
Where X is the name of the variable
   target = Y
Where Y is an event target</pre>
   value = Z
   localization = W
   ... random list body
}
Where X is the skill to compare, Y is the target character (requires skill to be set) or integer value Z (works with or without the skill), the rest of the effect is the same as random_list
If the skill is unspecified, the effect needs a value Z (which can use scripted math) which it will then use as the duel vlue directly
If localization = W is specified, the effect localization W will be used (entry in effect_localization database, not a localization key directly)
The skill difference (or scripted duel value) is available as scope:duel_value inside the outcome entries, the duel target is accessible as scope:duel_target
Valid skill, target, combinations: skill + target, skill + value, only value
 
Since there is now no automatic weighting, we should be using weight numbers in a comparable range to the scope:duel_value value. Since that will always be between -20 and 20 (unless you do something very unusual), and typically in a more narrow range than that, we should stick to those ranges.
Only use larger weights if you want the duel_value to have a smaller impact on the weighting, and only use smaller weights if you want the duel_value to have a huge impact on the weighting.
In addition, it is fully possible for the compare_modifier to reduce the weight to 0, which would mean that it will not be possible to happen at all. I've requested code support to make it so that we can define min and max values for weights, but until further notice we should use ranges that are guaranteed to not hit 0, or include min values in the compare_modifier itself.
Lastly, remember that if you want the outcome of a duel to scale linearly from (almost) 0% to (almost) 100%, the duel_value should be applied 50% to the good outcome, and -50% to the bad outcome. If you only apply it on one side, you will retain a (presumably significant) chunk of chance for the other outcome.</pre>
| none
| none
|-
|-
| else
| assert_if
| Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met
| Conditionally cause an assert during run time
| <pre>if = { limit = { <triggers> } <effects> }
| <pre>assert_if = { limit = { X } text = Y }, where X is a trigger and Y is an optional string</pre>
else = { <effects> }</pre>
| none
| none
|-
|-
| else_if
| assert_read
| Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met, and its own limit is met
| Conditionally cause an assert during read time
| <pre>if = { limit = { <triggers> } <effects> }
| <pre>assert_read = X, where X is yes or the string to be printed in the assert</pre>
else_if = { limit = { <triggers> } <effects> }</pre>
| none
| none
|-
|-
| end_inspiration_sponsorship
| break_betrothal
| end_inspiration_sponsorship = inspiration
| Breaks the betrothal between the scope character to the target character, break_betrothal = target
| <pre>Stops the sponsorship of the targeted inspiration</pre>
| <pre></pre>
| none
| none
| inspiration
| character
|-
|-
| every_artifact
| change_global_variable
| Iterate through all existing artifacts
| Changes the value or a numeric variable
| <pre>every_artifact = { limit = { <triggers> } <effects> }</pre>
| <pre>change_variable = { name = X operation = Y }
Where X is the name of the numeric variable to modify
Where the valid operations are add, subtract, multiply, divide and modulo
Where Y is a fixed point value, script value or event target of a value type</pre>
| none
| none
| artifact
|-
|-
| every_barony
| change_local_variable
| Iterate through all baronies in the game
| Changes the value or a numeric variable
| <pre>every_barony = { limit = { <triggers> } <effects> }</pre>
| <pre>change_variable = { name = X operation = Y }
Where X is the name of the numeric variable to modify
Where the valid operations are add, subtract, multiply, divide and modulo
Where Y is a fixed point value, script value or event target of a value type</pre>
| none
| none
| landed title
|-
|-
| every_character_with_royal_court
| change_title_holder
| Iterate through all characters with a royal court
| = {
| <pre>every_character_with_royal_court = { limit = { <triggers> } <effects> }</pre>
| <pre>holder = 'Character that should get the title'
change = 'previously created title_and_vassal_change', adds a title change, will not transfer vassalstake_baronies = yes # Optional; if set, will cause baronies to be taken (rather than vassalized) as well if this title is a countygovernment_base = character # Optional, if the character getting the title was unlanded, their new government will be based on the government of government_base. If no government_base is specified, the government will be based on holder's government.</pre>
| none
| none
| character
|-
|-
| every_county
| change_title_holder_include_vassals
| Iterate through all counties in the game
| = {
| <pre>every_county = { limit = { <triggers> } <effects> }</pre>
| <pre>holder = 'Character that should get the title'
change = 'previously created title_and_vassal_change', adds a title change, will transfer vassalstake_baronies = yes # Optional; if set, will cause baronies to be taken (rather than vassalized) as well if this title is a countygovernment_base = character # Optional, if the character getting the title was unlanded, their new government will be based on the government of government_base. If no government_base is specified, the government will be based on holder's government.</pre>
| none
| none
| landed title
|-
|-
| every_county_in_region
| change_variable
| Iterate through all counties in the region. Put 'region = region_name' inside it
| Changes the value or a numeric variable
| <pre>every_county_in_region = { limit = { <triggers> } <effects> }</pre>
| <pre>change_variable = { name = X operation = Y }
Where X is the name of the numeric variable to modify
Where the valid operations are add, subtract, multiply, divide and modulo
Where Y is a fixed point value, script value or event target of a value type</pre>
| none
| none
| landed title
|-
|-
| every_culture_global
| clamp_global_variable
| Iterate through all cultures in the game
| Clamps a variable the specified max and min
| <pre>every_culture_global = { limit = { <triggers> } <effects> }</pre>
| <pre>clamp_variable = { name = X max = Y min = Z }
Where X is the name of the variable
Where Y and Z are script values</pre>
| none
| none
| culture
|-
|-
| every_duchy
| clamp_local_variable
| Iterate through all duchies in the game
| Clamps a variable the specified max and min
| <pre>every_duchy = { limit = { <triggers> } <effects> }</pre>
| <pre>clamp_variable = { name = X max = Y min = Z }
Where X is the name of the variable
Where Y and Z are script values</pre>
| none
| none
| landed title
|-
|-
| every_empire
| clamp_variable
| Iterate through all empires in the game
| Clamps a variable the specified max and min
| <pre>every_empire = { limit = { <triggers> } <effects> }</pre>
| <pre>clamp_variable = { name = X max = Y min = Z }
Where X is the name of the variable
Where Y and Z are script values</pre>
| none
| none
| landed title
|-
|-
| every_in_global_list
| clear_global_variable_list
| Iterate through all items in global list. list = name or variable = name
| Empties the list
| <pre>every_in_global_list = { limit = { <triggers> } <effects> }</pre>
| <pre>clear_variable_list = variable_name</pre>
| none
| none
|-
|-
| every_in_list
| clear_local_variable_list
| Iterate through all items in list. list = name or variable = name
| Empties the list
| <pre>every_in_list = { limit = { <triggers> } <effects> }</pre>
| <pre>clear_variable_list = variable_name</pre>
| none
| none
|-
|-
| every_in_local_list
| clear_saved_scope
| Iterate through all items in local list. list = name or variable = name
| Clears a saved scope from the top scope
| <pre>every_in_local_list = { limit = { <triggers> } <effects> }</pre>
| <pre>save_scope_as = cool_scope -> clear_saved_scope = cool_scope</pre>
| none
| none
|-
|-
| every_independent_ruler
| clear_traits
| Independent rulers list with a COUNT tier or above who hold land
| Removes all traits for the character. clear_traits = yes
| <pre>every_independent_ruler = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| none
| none
| character
|-
|-
| every_inspiration
| clear_variable_list
| Iterate through all inspirations in the world
| Empties the list
| <pre>every_inspiration = { limit = { <triggers> } <effects> }</pre>
| <pre>clear_variable_list = variable_name</pre>
| none
| none
| inspiration
|-
|-
| every_inspired_character
| close_all_views
| Iterate through all characters with an inspirations in the world
| Closes all views. close_all_views = yes
| <pre>every_inspired_character = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| none
| none
| character
|-
|-
| every_kingdom
| close_view
| Iterate through all kingdoms in the game
| Tries to close the defined view.
| <pre>every_kingdom = { limit = { <triggers> } <effects> }</pre>
| <pre>Take care to set player if effect is executed not through UI but through synchronized code. Else all the window will open for all players.
close_view = {
   view = <view name>
   player = scope:character # optional, else closes for all players who execute the effect
}simplified: close_view = <view name></pre>
| none
| none
| landed title
|-
|-
| every_living_character
| copy_traits
| Iterate through all living characters
| Adds all traits of the target to the character. Skips any traits that the character isn't allowed to have. Will not remove the character's existing traits. copy_traits = scope:character
| <pre>every_living_character = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| none
| none
| character
| character
|-
|-
| every_player
| create_betrothal
| Iterate through all player characters
| Betroth the scope character to the target character, create_betrothal = target (at least one of the characters need to not be adult)
| <pre>every_player = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| none
| none
| character
| character
|-
|-
| every_pool_character
| create_betrothal_matrilineal
| Iterate through all characters in the pool of the given province
| Betroth the scope character to the target character matrilineally, create_betrothal_matrilineal = target (at least one of the characters need to not be adult)
| <pre>every_pool_character = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| none
| none
| character
| character
|-
|-
| every_province
| create_character
| Iterate through all provinces (skips non-land and impassable provinces)
| Creates a character
| <pre>every_province = { limit = { <triggers> } <effects> }</pre>
| <pre>
save_event_target_as = flag - save the character as an event target
save_temporary_event_target_as = flag - save the character as a temporary event target
name =
age =
gender = male/female/character scope
gender_female_chance = script_value - Range (0..100)
opposite_gender = character scope
trait = add this trait
random_traits_list = { count = { 1 5 } traitID = { some triggers } traitID = { some triggers } } - A number of traits specified by count (1 if not specified) will be picked from the traits that have their triggers met. Scopes are the same as where create_character is used. More than one grouping like this can be defined
random_traits = yes/no
health =
fertility =
mother =
father =
real_father = (should only be set if the real father is not the same as father=)
employer = will end up in this court, will become a pool character unless specified or father/mother is landed
location = pool province; mutually exclusive with employer
template_character =
faith, culture and dynasty are set from 1. template_character 2. father 3. mother 4. employer (not employer for dynasty) unless specified directly
faith = faith tag OR a faith scope
random_faith = { catholic = { some triggers } cathar = { some triggers }. Random one where the triggers are met will be picked. Scopes are the same as where create_character is used
random_faith_in_religion = religion tag OR a faith scope (there's no religion scope)
culture = culture name OR a culture scope
random_culture = { norse = { some triggers } norwegian = { some triggers }. Random one where the triggers are met will be picked. Scopes are the same as where create_character is used
random_culture_in_group = culture group name OR a culture scope (there's no group scope)
dynasty_house = dynasty house name OR a dynasty house scope
dynasty = generate/inherit/none - What to do if dynasty_house is not specified. generate by default.
martial/diplomacy/intrigue...  =  will get random unless specified
after_creation = { some effects } run after character is created. Scope starts off in the character, with the scope it was created in as PREV, and the same top scope and saved targets etc.</pre>
| none
| none
| province
|-
|-
| every_religion_global
| create_dynamic_title
| Iterate through all religions in the game
| Creates a dynamic title
| <pre>every_religion_global = { limit = { <triggers> } <effects> }</pre>
| <pre>The title will be saved to scope:new_titleusage:
create_dynamic_title = {
tier = <tier>
name = key/dynamic description adjective = key/dynamic description (optional; name used if not specified)}</pre>
| none
| none
| religion
|-
|-
| every_ruler
| create_holy_order
| Rulers list with a COUNT tier o above
| Create a new holy order
| <pre>every_ruler = { limit = { <triggers> } <effects> }</pre>
| <pre>create_holy_order = {
   leader = scope:a_character
   capital = scope:a_barony_title
   save_scope_as/save_temporary_scope_as = new_holy_order # optional way to get a reference to the new holy order
}</pre>
| none
| none
| character
|-
|-
| hidden_effect
| create_title_and_vassal_change
| Effect not shown in tooltips
| starts a title and vassal change and saves it as a temporary event target
| <pre></pre>
| <pre>create_title_and_vassal_change = {
type = conquest (or other type)
save_scope_as = change (name of resulting saved scope)
add_claim_on_loss = yes (optional)
}</pre>
| none
| none
|-
|-
| hidden_effect_new_artifact
| custom_description_no_bullet
| Specific Artifact effects intended for use with newly created artifacts. These are hidden from tooltip, with no description generated whatsoever!
| Wraps effects that get a custom description instead of the auto-generated one. Also ensures no bullet point appears
| <pre></pre>
| <pre>custom_description_no_bullet = {
text = <effect_localization_key>
subject = <optional subject scope> #defaults to current scope
object = <optional object scope>
value = <optional script value>
... effects ...
}</pre>
| none
| none
|-
|-
| if
| custom_label
| Executes enclosed effects if limit criteria are met
| just a tooltip, the scope as object (for grouping, localization). Can also be written as custom_label = { text = key subject = scope (optional) <hidden effects> }
| <pre>if = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| none
| none
|-
|-
| multiply_focus_progress
| debug_log
| Multiplies focus progress
| Log a string to the debug log when this effect executes, debug_log = message, the message can be a localization string with ROOT, SCOPE and PREV available
| <pre></pre>
| <pre></pre>
| none
| none
|-
|-
| open_interaction_window
| debug_log_date
| Tries to open the defined view.
| Logs the current date to the debug.log
| <pre>
| <pre></pre>
interaction = interaction_key - the interaction object key to open
redirect = [yes|no] - yes by default, redirect the actor and recipients ( only works if secondary_actor and secondary_recipient are not setup or are invalid)
actor = character_actor - must be defined, must coincide with the current player
recipient = character_actor - must be defined
secondary_actor = character_secontary_actor - optional
secondary_recipient = character_secondary_recipient - optional</pre>
| none
| none
|-
|-
| open_view
| debug_log_scopes
| Tries to open the defined view without scope data.
| Log the current scope to the debug log when this effect executes yes = full scope info, no=only current scope
| <pre>Take care to set player if effect is executed not through UI but through synchronized code. Else all the window will open for all players.
| <pre></pre>
open_view = {
   view = <view name>
   view_message = <view specific instruction> # optional
   player = scope:character # optional, else shows for all players who execute the effect
}simplified: open_view = <view name></pre>
| none
| none
|-
|-
| open_view_data
| debug_trigger_event
| Tries to open the defined view with scope data.
| Like trigger_event, except it'll print the trigger fulfillment and immediate effects of the event too
| <pre>Take care to set player if effect is executed not through UI but through synchronized code. Else all the window will open for all players.
| <pre></pre>
open_view_data = {
   view = <view name>
   view_message = <view specific instruction> # optional
   player = scope:character # optional, else shows for all players who execute the effect
}
simplified: open_view_data = <view name>
for example: scope:faith = { open_view_data = faith_conversion }</pre>
| none
| none
|-
|-
| ordered_artifact
| destroy_artifact
| Iterate through all existing artifacts
| Destroy given artifact
| <pre>ordered_artifact = {
| <pre>destroy_artifact = artifact</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| artifact
| artifact
|-
|-
| ordered_barony
| destroy_inspiration
| Iterate through all baronies in the game
| destroy_inspiration = inspiration
| <pre>ordered_barony = {
| <pre>Destroys the targeted inspiration, do not use the destroyed scope after calling this since it will have been removed</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| landed title
| inspiration
|-
|-
| ordered_character_with_royal_court
| divorce
| Iterate through all characters with a royal court
| Divorces the scope character from the target character. divorce = target
| <pre>ordered_character_with_royal_court = {
| <pre></pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
| character
|-
|-
| ordered_county
| duel
| Iterate through all counties in the game
| duel effect that selects an effect based on comparing specified skill of a character to a value or another character's skill. Alternatively, the compare value can be scripted completely
| <pre>ordered_county = {
| <pre>duel = {
limit = { <triggers> }
   skill = X
order_by = script_value
   target = Y
position = int
   value = Z
min = int
   localization = W
max = script_value
   ... random list body
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
}
<effects> }</pre>
Where X is the skill to compare, Y is the target character (requires skill to be set) or integer value Z (works with or without the skill), the rest of the effect is the same as random_list
If the skill is unspecified, the effect needs a value Z (which can use scripted math) which it will then use as the duel vlue directly
If localization = W is specified, the effect localization W will be used (entry in effect_localization database, not a localization key directly)
The skill difference (or scripted duel value) is available as scope:duel_value inside the outcome entries, the duel target is accessible as scope:duel_target
Valid skill, target, combinations: skill + target, skill + value, only value
 
Since there is now no automatic weighting, we should be using weight numbers in a comparable range to the scope:duel_value value. Since that will always be between -20 and 20 (unless you do something very unusual), and typically in a more narrow range than that, we should stick to those ranges.
Only use larger weights if you want the duel_value to have a smaller impact on the weighting, and only use smaller weights if you want the duel_value to have a huge impact on the weighting.
In addition, it is fully possible for the compare_modifier to reduce the weight to 0, which would mean that it will not be possible to happen at all. I've requested code support to make it so that we can define min and max values for weights, but until further notice we should use ranges that are guaranteed to not hit 0, or include min values in the compare_modifier itself.
Lastly, remember that if you want the outcome of a duel to scale linearly from (almost) 0% to (almost) 100%, the duel_value should be applied 50% to the good outcome, and -50% to the bad outcome. If you only apply it on one side, you will retain a (presumably significant) chunk of chance for the other outcome.</pre>
| none
| none
| landed title
|-
|-
| ordered_county_in_region
| else
| Iterate through all counties in the region. Put 'region = region_name' inside it
| Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met
| <pre>ordered_county_in_region = {
| <pre>if = { limit = { <triggers> } <effects> }
limit = { <triggers> }
else = { <effects> }</pre>
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| landed title
|-
|-
| ordered_culture_global
| else_if
| Iterate through all cultures in the game
| Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met, and its own limit is met
| <pre>ordered_culture_global = {
| <pre>if = { limit = { <triggers> } <effects> }
limit = { <triggers> }
else_if = { limit = { <triggers> } <effects> }</pre>
order_by = script_value
| none
position = int
|
min = int
|-
max = script_value
| end_inspiration_sponsorship
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| end_inspiration_sponsorship = inspiration
<effects> }</pre>
| <pre>Stops the sponsorship of the targeted inspiration</pre>
| none
| inspiration
|-
| every_artifact
| Iterate through all existing artifacts
| <pre>every_artifact = { limit = { <triggers> } <effects> }</pre>
| none
| none
| culture
| artifact
|-
|-
| ordered_duchy
| every_barony
| Iterate through all duchies in the game
| Iterate through all baronies in the game
| <pre>ordered_duchy = {
| <pre>every_barony = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| landed title
| landed title
|-
|-
| ordered_empire
| every_character_with_royal_court
| Iterate through all empires in the game
| Iterate through all characters with a royal court
| <pre>ordered_empire = {
| <pre>every_character_with_royal_court = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| character
position = int
|-
min = int
| every_county
max = script_value
| Iterate through all counties in the game
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre>every_county = { limit = { <triggers> } <effects> }</pre>
<effects> }</pre>
| none
| none
| landed title
| landed title
|-
|-
| ordered_in_global_list
| every_county_in_region
| Iterate through all items in global list. list = name or variable = name
| Iterate through all counties in the region. Put 'region = region_name' inside it
| <pre>ordered_in_global_list = {
| <pre>every_county_in_region = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| landed title
position = int
|-
min = int
| every_culture_global
max = script_value
| Iterate through all cultures in the game
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre>every_culture_global = { limit = { <triggers> } <effects> }</pre>
<effects> }</pre>
| none
| culture
|-
| every_duchy
| Iterate through all duchies in the game
| <pre>every_duchy = { limit = { <triggers> } <effects> }</pre>
| none
| landed title
|-
| every_empire
| Iterate through all empires in the game
| <pre>every_empire = { limit = { <triggers> } <effects> }</pre>
| none
| landed title
|-
| every_in_global_list
| Iterate through all items in global list. list = name or variable = name
| <pre>every_in_global_list = { limit = { <triggers> } <effects> }</pre>
| none
| none
|-
|-
| ordered_in_list
| every_in_list
| Iterate through all items in list. list = name or variable = name
| Iterate through all items in list. list = name or variable = name
| <pre>ordered_in_list = {
| <pre>every_in_list = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
|-
|-
| ordered_in_local_list
| every_in_local_list
| Iterate through all items in local list. list = name or variable = name
| Iterate through all items in local list. list = name or variable = name
| <pre>ordered_in_local_list = {
| <pre>every_in_local_list = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
|-
|-
| ordered_independent_ruler
| every_independent_ruler
| Independent rulers list with a COUNT tier or above who hold land
| Independent rulers list with a COUNT tier or above who hold land
| <pre>ordered_independent_ruler = {
| <pre>every_independent_ruler = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
| character
|-
|-
| ordered_inspiration
| every_inspiration
| Iterate through all inspirations in the world
| Iterate through all inspirations in the world
| <pre>ordered_inspiration = {
| <pre>every_inspiration = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| inspiration
| inspiration
|-
|-
| ordered_inspired_character
| every_inspired_character
| Iterate through all characters with an inspirations in the world
| Iterate through all characters with an inspirations in the world
| <pre>ordered_inspired_character = {
| <pre>every_inspired_character = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
| character
|-
|-
| ordered_kingdom
| every_kingdom
| Iterate through all kingdoms in the game
| Iterate through all kingdoms in the game
| <pre>ordered_kingdom = {
| <pre>every_kingdom = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| landed title
| landed title
|-
|-
| ordered_living_character
| every_living_character
| Iterate through all living characters
| Iterate through all living characters
| <pre>ordered_living_character = {
| <pre>every_living_character = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
| character
|-
|-
| ordered_player
| every_player
| Iterate through all player characters
| Iterate through all player characters
| <pre>ordered_player = {
| <pre>every_player = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
| character
|-
|-
| ordered_pool_character
| every_pool_character
| Iterate through all characters in the pool of the given province
| Iterate through all characters in the pool of the given province
| <pre>ordered_pool_character = {
| <pre>every_pool_character = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
| character
|-
|-
| ordered_province
| every_province
| Iterate through all provinces (skips non-land and impassable provinces)
| Iterate through all provinces (skips non-land and impassable provinces)
| <pre>ordered_province = {
| <pre>every_province = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| province
| province
|-
|-
| ordered_religion_global
| every_religion_global
| Iterate through all religions in the game
| Iterate through all religions in the game
| <pre>ordered_religion_global = {
| <pre>every_religion_global = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| religion
| religion
|-
|-
| ordered_ruler
| every_ruler
| Rulers list with a COUNT tier o above
| Rulers list with a COUNT tier o above
| <pre>ordered_ruler = {
| <pre>every_ruler = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
| character
|-
|-
| pan_camera_to_province
| hidden_effect_new_artifact
| Pans the camera to the specified province
| Specific Artifact effects intended for use with newly created artifacts. These are hidden from tooltip, with no description generated whatsoever!
| <pre>pan_camera_to_province = scope:army.location</pre>
| <pre></pre>
| none
| none
| province
|-
|-
| pan_camera_to_title
| if
| Pans the camera to the specified title
| Executes enclosed effects if limit criteria are met
| <pre>pan_camera_to_title = capital_barony</pre>
| <pre>if = { limit = { <triggers> } <effects> }</pre>
| none
| none
| landed title
|-
|-
| random
| multiply_focus_progress
| a random effect, random = { chance = X modifier = Y effects... }
| Multiplies focus progress
| <pre>where X is a chance of the enclosed effects being fired and can be modified by optional value modifier list (AKA MTTH) Y</pre>
| <pre></pre>
| none
| none
|-
|-
| random_artifact
| open_interaction_window
| Iterate through all existing artifacts
| Tries to open the defined view.
| <pre>random_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>
interaction = interaction_key - the interaction object key to open
redirect = [yes|no] - yes by default, redirect the actor and recipients ( only works if secondary_actor and secondary_recipient are not setup or are invalid)
actor = character_actor - must be defined, must coincide with the current player
recipient = character_actor - must be defined
secondary_actor = character_secontary_actor - optional
secondary_recipient = character_secondary_recipient - optional</pre>
| none
| none
| artifact
|-
|-
| random_barony
| open_view
| Iterate through all baronies in the game
| Tries to open the defined view without scope data.
| <pre>random_barony = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>Take care to set player if effect is executed not through UI but through synchronized code. Else all the window will open for all players.
open_view = {
   view = <view name>
   view_message = <view specific instruction> # optional
   player = scope:character # optional, else shows for all players who execute the effect
}simplified: open_view = <view name></pre>
| none
| none
| landed title
|-
|-
| random_character_with_royal_court
| open_view_data
| Iterate through all characters with a royal court
| Tries to open the defined view with scope data.
| <pre>random_character_with_royal_court = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>Take care to set player if effect is executed not through UI but through synchronized code. Else all the window will open for all players.
open_view_data = {
   view = <view name>
   view_message = <view specific instruction> # optional
   player = scope:character # optional, else shows for all players who execute the effect
}
simplified: open_view_data = <view name>
for example: scope:faith = { open_view_data = faith_conversion }</pre>
| none
| none
| character
|-
|-
| random_county
| ordered_artifact
| Iterate through all counties in the game
| Iterate through all existing artifacts
| <pre>random_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_artifact = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| landed title
| artifact
|-
|-
| random_county_in_region
| ordered_barony
| Iterate through all counties in the region. Put 'region = region_name' inside it
| Iterate through all baronies in the game
| <pre>random_county_in_region = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_barony = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| landed title
| landed title
|-
|-
| random_culture_global
| ordered_character_with_royal_court
| Iterate through all cultures in the game
| Iterate through all characters with a royal court
| <pre>random_culture_global = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_character_with_royal_court = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| culture
| character
|-
|-
| random_duchy
| ordered_county
| Iterate through all duchies in the game
| Iterate through all counties in the game
| <pre>random_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| landed title
| landed title
|-
|-
| random_empire
| ordered_county_in_region
| Iterate through all empires in the game
| Iterate through all counties in the region. Put 'region = region_name' inside it
| <pre>random_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_county_in_region = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| landed title
| landed title
|-
|-
| random_in_global_list
| ordered_culture_global
| Iterate through all items in global list. list = name or variable = name
| Iterate through all cultures in the game
| <pre>random_in_global_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_culture_global = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| culture
|-
|-
| random_in_list
| ordered_duchy
| Iterate through all items in list. list = name or variable = name
| Iterate through all duchies in the game
| <pre>random_in_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_duchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| landed title
|-
|-
| random_in_local_list
| ordered_empire
| Iterate through all items in local list. list = name or variable = name
| Iterate through all empires in the game
| <pre>random_in_local_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_empire = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| landed title
|-
|-
| random_independent_ruler
| ordered_in_global_list
| Independent rulers list with a COUNT tier or above who hold land
| Iterate through all items in global list. list = name or variable = name
| <pre>random_independent_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_in_global_list = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
|-
|-
| random_inspiration
| ordered_in_list
| Iterate through all inspirations in the world
| Iterate through all items in list. list = name or variable = name
| <pre>random_inspiration = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_in_list = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| inspiration
|-
|-
| random_inspired_character
| ordered_in_local_list
| Iterate through all characters with an inspirations in the world
| Iterate through all items in local list. list = name or variable = name
| <pre>random_inspired_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_in_local_list = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
|-
|-
| random_kingdom
| ordered_independent_ruler
| Iterate through all kingdoms in the game
| Independent rulers list with a COUNT tier or above who hold land
| <pre>random_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_independent_ruler = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| landed title
| character
|-
|-
| random_list
| ordered_inspiration
| a random list effect
| Iterate through all inspirations in the world
| <pre>random_list = { X1 = { trigger = { enables/disable this effect} modifier/compare_modifier/opinion_modifier = Y1 effect1 } X2 = { trigger = { enables/disable this effect} modifier/compare_modifier/opinion_modifier = Y2 effect2 } ... }
| <pre>ordered_inspiration = {
Selects one effect from the list and fires it. The effects are weighted by numbers X1, X2... (the higher the number, the higher the chance of the effect being picked).
limit = { <triggers> }
The chances can be modified by optional value modifier lists Y1, Y2... (AKA MTTH)</pre>
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| inspiration
|-
|-
| random_living_character
| ordered_inspired_character
| Iterate through all living characters
| Iterate through all characters with an inspirations in the world
| <pre>random_living_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_inspired_character = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
| character
|-
|-
| random_log_scopes
| ordered_kingdom
| Log the current scope to the random log when this effect executes. Only use temprorarily for debugging purposes as it can introduce localized strings into the Scopes._Random log. yes = full scope info, no=only current scope
| Iterate through all kingdoms in the game
| <pre></pre>
| <pre>ordered_kingdom = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| landed title
|-
|-
| random_player
| ordered_living_character
| Iterate through all player characters
| Iterate through all living characters
| <pre>random_player = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_living_character = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
| character
|-
|-
| random_pool_character
| ordered_player
| Iterate through all characters in the pool of the given province
| Iterate through all player characters
| <pre>random_pool_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_player = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| character
|-
| ordered_pool_character
| Iterate through all characters in the pool of the given province
| <pre>ordered_pool_character = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
| character
|-
|-
| random_province
| ordered_province
| Iterate through all provinces (skips non-land and impassable provinces)
| Iterate through all provinces (skips non-land and impassable provinces)
| <pre>random_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_province = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| province
| province
|-
|-
| random_religion_global
| ordered_religion_global
| Iterate through all religions in the game
| Iterate through all religions in the game
| <pre>random_religion_global = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_religion_global = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| religion
| religion
|-
|-
| random_ruler
| ordered_ruler
| Rulers list with a COUNT tier o above
| Rulers list with a COUNT tier o above
| <pre>random_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| <pre>ordered_ruler = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| none
| none
| character
| character
|-
|-
| remove_from_list
| pan_camera_to_province
| Removes the current scope from a named list remove_from_list = <string>
| Pans the camera to the specified province
| <pre></pre>
| <pre>pan_camera_to_province = scope:army.location</pre>
| none
| none
| province
|-
|-
| remove_global_variable
| pan_camera_to_title
| Removes a variable
| Pans the camera to the specified title
| <pre>remove_variable = variable_name</pre>
| <pre>pan_camera_to_title = capital_barony</pre>
| none
| none
| landed title
|-
|-
| remove_list_global_variable
| random_artifact
| Removes the target from a variable list
| Iterate through all existing artifacts
| <pre>remove_list_variable = { name = X target = Y }
| <pre>random_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
Where X is the name of the variable
Where Y is an event target</pre>
| none
| none
| artifact
|-
|-
| remove_list_local_variable
| random_barony
| Removes the target from a variable list
| Iterate through all baronies in the game
| <pre>remove_list_variable = { name = X target = Y }
| <pre>random_barony = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
Where X is the name of the variable
Where Y is an event target</pre>
| none
| none
| landed title
|-
|-
| remove_list_variable
| random_character_with_royal_court
| Removes the target from a variable list
| Iterate through all characters with a royal court
| <pre>remove_list_variable = { name = X target = Y }
| <pre>random_character_with_royal_court = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
Where X is the name of the variable
Where Y is an event target</pre>
| none
| none
| character
|-
|-
| remove_local_variable
| random_county
| Removes a variable
| Iterate through all counties in the game
| <pre>remove_variable = variable_name</pre>
| <pre>random_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| landed title
|-
|-
| remove_title_law
| random_county_in_region
| remove law from scoped title. This will leave the law group empty, so only do this if you're getting rid of a law group. DOES NOT apply law removal costs and effects.
| Iterate through all counties in the region. Put 'region = region_name' inside it
| <pre>remove_title_law = princely_elective_succession_law</pre>
| <pre>random_county_in_region = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| landed title
|-
|-
| remove_title_law_effects
| random_culture_global
| remove law from scoped title. This will leave the law group empty, so only do this if you're getting rid of a law group. DOES apply law removal costs and effects.
| Iterate through all cultures in the game
| <pre>remove_title_law = princely_elective_succession_law</pre>
| <pre>random_culture_global = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| culture
|-
|-
| remove_variable
| random_duchy
| Removes a variable
| Iterate through all duchies in the game
| <pre>remove_variable = variable_name</pre>
| <pre>random_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| landed title
|-
|-
| resolve_title_and_vassal_change
| random_empire
| resolve_title_and_vassal_change = scope:change
| Iterate through all empires in the game
| <pre>Execute and destory the target title and vassal change, the change cannot be used after calling this effect</pre>
| <pre>random_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| title and vassal change
| landed title
|-
|-
| round_global_variable
| random_in_global_list
| Rounds a variable to the nearest specified value
| Iterate through all items in global list. list = name or variable = name
| <pre>clamp_variable = { name = X nearest = Y }
| <pre>random_in_global_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
Where X is the name of the variable
Where Y is a script value</pre>
| none
| none
|-
|-
| round_local_variable
| random_in_list
| Rounds a variable to the nearest specified value
| Iterate through all items in list. list = name or variable = name
| <pre>clamp_variable = { name = X nearest = Y }
| <pre>random_in_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
Where X is the name of the variable
Where Y is a script value</pre>
| none
| none
|-
|-
| round_variable
| random_in_local_list
| Rounds a variable to the nearest specified value
| Iterate through all items in local list. list = name or variable = name
| <pre>clamp_variable = { name = X nearest = Y }
| <pre>random_in_local_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
Where X is the name of the variable
Where Y is a script value</pre>
| none
| none
|-
|-
| run_interaction
| random_independent_ruler
| Execute/send the given interaction
| Independent rulers list with a COUNT tier or above who hold land
| <pre>
| <pre>random_independent_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
interaction = interaction_key - the interaction object key to run
| none
redirect = [yes|no] - yes by default, redirect the actor and recipients ( only works if secondary_actor and secondary_recipient are not setup or are invalid)
| character
actor = character_actor - must be defined
recipient = character_actor - must be defined
secondary_actor = character_secontary_actor - optional
secondary_recipient = character_secondary_recipient - optional
execute_threshold = accept/maybe/decline - will be executed immediately if the AI response is at least this
send_threshold = accept/maybe/decline - will be sent if the AI response is at least this
At least one of execute_threshold and send_threshold must be set</pre>
| none
|-
|-
| save_opinion_value_as
| random_inspiration
| Saves the scoped character's opinion of the target character as an arbitrarily-named target to be referenced later in the (unbroken) event chain
| Iterate through all inspirations in the world
| <pre>save_opinion_value_as = { name = <string> target = x }</pre>
| <pre>random_inspiration = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| inspiration
|-
|-
| save_scope_as
| random_inspired_character
| Saves the current scope as an arbitrarily-named target to be referenced later in the (unbroken) event chain
| Iterate through all characters with an inspirations in the world
| <pre>save_event_target_as = <string></pre>
| <pre>random_inspired_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| character
|-
|-
| save_scope_value_as
| random_kingdom
| Saves a numerical or bool value as an arbitrarily-named target to be referenced later in the (unbroken) event chain
| Iterate through all kingdoms in the game
| <pre>save_scope_value_as = { name = <string> value = x }</pre>
| <pre>random_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| landed title
|-
|-
| save_temporary_opinion_value_as
| random_living_character
| Saves the scoped character's opinion of the target character as an arbitrarily-named target to be referenced later in the in the same effect
| Iterate through all living characters
| <pre>save_temporary_opinion_value_as = { name = <string> target = x</pre>
| <pre>random_living_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| character
|-
|-
| save_temporary_scope_as
| random_log_scopes
| Saves the current scope as an arbitrarily-named temporary target to be referenced later in the same effect
| Log the current scope to the random log when this effect executes. Only use temprorarily for debugging purposes as it can introduce localized strings into the Scopes._Random log. yes = full scope info, no=only current scope
| <pre>save_temporary_event_target_as = <string></pre>
| <pre></pre>
| none
| none
|-
|-
| save_temporary_scope_value_as
| random_player
| Saves a numerical or bool value as an arbitrarily-named temporary target to be referenced later in the same effect
| Iterate through all player characters
| <pre>save_temporary_scope_value_as = { name = <string> value = x }</pre>
| <pre>random_player = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| character
|-
|-
| set_focus_progress
| random_pool_character
| Sets focus progress
| Iterate through all characters in the pool of the given province
| <pre></pre>
| <pre>random_pool_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| character
|-
|-
| set_generated_asexuality_chance
| random_province
| Sets the chance for a generated character to be asexual
| Iterate through all provinces (skips non-land and impassable provinces)
| <pre>set_generated_asexuality_chance = 20</pre>
| <pre>random_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| province
|-
|-
| set_generated_bisexuality_chance
| random_religion_global
| Sets the chance for a generated character to be bisexual
| Iterate through all religions in the game
| <pre>set_generated_bisexuality_chance = 20</pre>
| <pre>random_religion_global = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| religion
|-
|-
| set_generated_homosexuality_chance
| random_ruler
| Sets the chance for a generated character to be homosexual
| Rulers list with a COUNT tier o above
| <pre>set_generated_homosexuality_chance = 20</pre>
| <pre>random_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
| none
| character
|-
|-
| set_global_variable
| remove_from_list
| Sets a variable
| Removes the current scope from a named list remove_from_list = <string>
| <pre>set_variable = { name = X value = Y days = Z }
| <pre></pre>
Where X is the name of the variable used to then access it
Where Y is any event target, bool, value, script value or flag (flag:W)
An optional days where Z is the number of days or script value
This variable will be accessible with <type_>var:X. With type being in a scope object or in a top scope
Can also be used as set_variable = X (equivalent to set_variable = { name = X value = yes })</pre>
| none
| none
|-
|-
| set_local_variable
| remove_global_variable
| Sets a variable
| Removes a variable
| <pre>set_variable = { name = X value = Y days = Z }
| <pre>remove_variable = variable_name</pre>
Where X is the name of the variable used to then access it
Where Y is any event target, bool, value, script value or flag (flag:W)
An optional days where Z is the number of days or script value
This variable will be accessible with <type_>var:X. With type being in a scope object or in a top scope
Can also be used as set_variable = X (equivalent to set_variable = { name = X value = yes })</pre>
| none
| none
|-
|-
| set_pregnancy_gender
| remove_list_global_variable
| Set the gender of the unborn child
| Removes the target from a variable list
| <pre>set_pregnancy_gender = female/male/random</pre>
| <pre>remove_list_variable = { name = X target = Y }
Where X is the name of the variable
Where Y is an event target</pre>
| none
| none
|-
|-
| set_variable
| remove_list_local_variable
| Sets a variable
| Removes the target from a variable list
| <pre>set_variable = { name = X value = Y days = Z }
| <pre>remove_list_variable = { name = X target = Y }
Where X is the name of the variable used to then access it
Where X is the name of the variable
Where Y is any event target, bool, value, script value or flag (flag:W)
Where Y is an event target</pre>
An optional days where Z is the number of days or script value
This variable will be accessible with <type_>var:X. With type being in a scope object or in a top scope
Can also be used as set_variable = X (equivalent to set_variable = { name = X value = yes })</pre>
| none
| none
|-
|-
| setup_claim_cb
| remove_list_variable
| = { attacker = scope:attacker
| Removes the target from a variable list
| <pre> defender = scope:defender
| <pre>remove_list_variable = { name = X target = Y }
claimant = scope:claimant
Where X is the name of the variable
  change = scope:change victory = yes/no
Where Y is an event target</pre>
take_occupied = yes/no } , this effect will add a scope:cb_prestige_factor with a value based on what's being taken
civil_war = yes # Will vassalize people based on their capital location rather than being fully contained. Won't steal land from people not vassalized</pre>
| none
| none
|-
|-
| setup_de_jure_cb
| remove_local_variable
| = { attacker = scope:attacker
| Removes a variable
| <pre>defender = scope:defender
| <pre>remove_variable = variable_name</pre>
change = scope:change
victory = yes/no
title = some title - Optional; will make it target a specific dejure title rather than *everything* that is dejure the attacker's
}, this effect will add a scope:cb_prestige_factor with a value based on what's being taken</pre>
| none
| none
|-
|-
| setup_invasion_cb
| remove_title_law
| = { attacker = scope:attacker
| remove law from scoped title. This will leave the law group empty, so only do this if you're getting rid of a law group. DOES NOT apply law removal costs and effects.
| <pre> defender = scope:defender
| <pre>remove_title_law = princely_elective_succession_law</pre>
  change = scope:change victory = yes/no
take_occupied = yes/no } , this effect will add a scope:cb_prestige_factor with a value based on what's being taken</pre>
| none
| none
|-
|-
| show_as_tooltip
| remove_title_law_effects
| Effect only shown in tooltips (but not executed)
| remove law from scoped title. This will leave the law group empty, so only do this if you're getting rid of a law group. DOES apply law removal costs and effects.
| <pre></pre>
| <pre>remove_title_law = princely_elective_succession_law</pre>
| none
| none
|-
|-
| start_tutorial_lesson
| remove_variable
| Starts the tutorial lesson with the given key. Does nothing if the tutorial is not running, the lesson is completed (or already running), or the lesson cannot be triggered (e.g. trigger fails)
| Removes a variable
| <pre></pre>
| <pre>remove_variable = variable_name</pre>
| none
| none
|-
|-
| switch
| resolve_title_and_vassal_change
| Switch on a trigger for the evaluation of another trigger with an optional fallback trigger.
| resolve_title_and_vassal_change = scope:change
| <pre>switch = {
| <pre>Execute and destory the target title and vassal change, the change cannot be used after calling this effect</pre>
trigger = simple_assign_trigger
case_1 = { <effects> }
case_2 = { <effects> }
case_n = { <effects> }
fallback = { <effects> }</pre>
| none
| none
| title and vassal change
|-
|-
| trigger_event
| round_global_variable
| triggers an event or on_action
| Rounds a variable to the nearest specified value
| <pre>trigger_event = { id = X days/months/years = Y delayed = yes/no } (for events)
| <pre>clamp_variable = { name = X nearest = Y }
or
Where X is the name of the variable
trigger_event = { on_action = X days/months/years = Y delayed = yes/no } (for on_actions)
Where Y is a script value</pre>
Days/months/years are optional and equal to 0 if not specified. If specified, Y can be a value or an inclusive interval "{ A B }" from which the duration will be picked Scopes._Randomly.
delayed = yes will delay the event/on_action to the next event tick even when there's no explicit time interval set (delay, but fire ASAP). By default, delayed = no</pre>
| none
| none
|-
|-
| try_create_important_action
| round_local_variable
| Tries to create an important action notification. Will keep the current one if already exists.
| Rounds a variable to the nearest specified value
| <pre>
| <pre>clamp_variable = { name = X nearest = Y }
important_action_type = important_action_type_key - the important action object key to create. Must be defined.
Where X is the name of the variable
actor = character_actor - optional, can be used by the important action effect
Where Y is a script value</pre>
recipient = character_actor - optional, can be used by the important action effect
secondary_actor = character_secontary_actor - optional, can be used by the important action effect
secondary_recipient = character_secondary_recipient - optional, can be used by the important action effect
landed_title = landed_title - optional, can be used by the important action effect
war = war - optional, can be used by the important action effect
artifact = artifact - optional, can be used by the important action effect
culture = culture - optional, can be used by the important action effect</pre>
| none
| none
|-
|-
| try_create_suggestion
| round_variable
| Tries to create an suggestuib notification. Will keep the current one if already exists.
| Rounds a variable to the nearest specified value
| <pre>
| <pre>clamp_variable = { name = X nearest = Y }
suggestion_type = suggestion_type_key - the suggestion action object key to create. Must be defined.
Where X is the name of the variable
actor = character_actor - optional, can be used by the suggestion effect
Where Y is a script value</pre>
recipient = character_actor - optional, can be used by the suggestion effect
secondary_actor = character_secontary_actor - optional, can be used by the suggestion effect
secondary_recipient = character_secondary_recipient - optional, can be used by the suggestion effect
landed_title = landed_title - optional, can be used by the suggestion effect</pre>
| none
| none
|-
|-
| while
| run_interaction
| Repeats enclosed effects while limit criteria are met or until set iteration count is reached
| Execute/send the given interaction
| <pre>while = { limit = { <triggers> } <effects> }
| <pre>
while = { count = 3 <effects> }
interaction = interaction_key - the interaction object key to run
Default max of 1000.</pre>
redirect = [yes|no] - yes by default, redirect the actor and recipients ( only works if secondary_actor and secondary_recipient are not setup or are invalid)
actor = character_actor - must be defined
recipient = character_actor - must be defined
secondary_actor = character_secontary_actor - optional
secondary_recipient = character_secondary_recipient - optional
execute_threshold = accept/maybe/decline - will be executed immediately if the AI response is at least this
send_threshold = accept/maybe/decline - will be sent if the AI response is at least this
At least one of execute_threshold and send_threshold must be set</pre>
| none
| none
|-
|-
| add_amenity_level
| save_opinion_value_as
| add_amenity_level = { type = food value = 2 }
| Saves the scoped character's opinion of the target character as an arbitrarily-named target to be referenced later in the (unbroken) event chain
| <pre>Increases the amenity type by the given value for the scoped character</pre>
| <pre>save_opinion_value_as = { name = <string> target = x }</pre>
| character
| none
|-
|-
| add_character_flag
| save_scope_as
| adds a character flag
| Saves the current scope as an arbitrarily-named target to be referenced later in the (unbroken) event chain
| <pre>usage:
| <pre>save_event_target_as = <string></pre>
add_character_flag = X
| none
add_character_flag = { flag = X days/weeks/years = Y }
where X is the name of the flag and Y is a value or value interval "{ min max }"</pre>
| character
|-
|-
| add_character_modifier
| save_scope_value_as
| Add a modifier to a character
| Saves a numerical or bool value as an arbitrarily-named target to be referenced later in the (unbroken) event chain
| <pre>add_character_modifier = name
| <pre>save_scope_value_as = { name = <string> value = x }</pre>
add_character_modifier = { modifier = name days/weeks/months/years = int }
| none
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier</pre>
| character
|-
|-
| add_courtier
| save_temporary_opinion_value_as
| Add the target character to the scope character's court
| Saves the scoped character's opinion of the target character as an arbitrarily-named target to be referenced later in the in the same effect
| <pre></pre>
| <pre>save_temporary_opinion_value_as = { name = <string> target = x</pre>
| character
| none
| character
|-
|-
| add_diplomacy_lifestyle_perk_points
| save_temporary_scope_as
| Adds lifestyle per points to the given character
| Saves the current scope as an arbitrarily-named temporary target to be referenced later in the same effect
| <pre></pre>
| <pre>save_temporary_event_target_as = <string></pre>
| character
| none
|-
|-
| add_diplomacy_lifestyle_xp
| save_temporary_scope_value_as
| Adds lifestyle XP to the given character
| Saves a numerical or bool value as an arbitrarily-named temporary target to be referenced later in the same effect
| <pre></pre>
| <pre>save_temporary_scope_value_as = { name = <string> value = x }</pre>
| character
| none
|-
|-
| add_dread
| set_focus_progress
| adds (or removes) dread to a character
| Sets focus progress
| <pre></pre>
| <pre></pre>
| character
| none
|-
|-
| add_gold
| set_generated_asexuality_chance
| adds gold to a character
| Sets the chance for a generated character to be asexual
| <pre></pre>
| <pre>set_generated_asexuality_chance = 20</pre>
| character
| none
|-
|-
| add_hook
| set_generated_bisexuality_chance
| Adds a hook on a character
| Sets the chance for a generated character to be bisexual
| <pre>add_hook = { type = X, target = Y, secret = Z, days/months/years = W  }
| <pre>set_generated_bisexuality_chance = 20</pre>
Note: days/months/years optional (taken from hook type otherwise) and can be a value or an interval, secret required for hook types that require it.
| none
Does send a toast to the player if it's involved.</pre>
| character
|-
|-
| add_hook_no_toast
| set_generated_homosexuality_chance
| Adds a hook on a character
| Sets the chance for a generated character to be homosexual
| <pre>add_hook = { type = X, target = Y, secret = Z, days/months/years = W  }
| <pre>set_generated_homosexuality_chance = 20</pre>
Note: days/months/years optional (taken from hook type otherwise) and can be a value or an interval, secret required for hook types that require it.
| none
Does NOT send a toast to the player.</pre>
| character
|-
|-
| add_intrigue_lifestyle_perk_points
| set_global_variable
| Adds lifestyle per points to the given character
| Sets a variable
| <pre></pre>
| <pre>set_variable = { name = X value = Y days = Z }
| character
Where X is the name of the variable used to then access it
Where Y is any event target, bool, value, script value or flag (flag:W)
An optional days where Z is the number of days or script value; this can't refer to another variable’s value directly and should instead point to a script value that then checks that variable’s value.
This variable will be accessible with <type_>var:X. With type being in a scope object or in a top scope
Can also be used as set_variable = X (equivalent to set_variable = { name = X value = yes })</pre>
| none
|-
|-
| add_intrigue_lifestyle_xp
| set_local_variable
| Adds lifestyle XP to the given character
| Sets a variable
| <pre></pre>
| <pre>set_variable = { name = X value = Y days = Z }
| character
Where X is the name of the variable used to then access it
Where Y is any event target, bool, value, script value or flag (flag:W)
An optional days where Z is the number of days or script value; a variable cannot be used in this section, and you should instead use a script value that checks the variable’s value.
This variable will be accessible with <type_>var:X. With type being in a scope object or in a top scope
Can also be used as set_variable = X (equivalent to set_variable = { name = X value = yes })</pre>
| none
|-
|-
| add_joined_faction_discontent
| set_pregnancy_gender
| add_joined_faction_discontent = X adds (or subtracts) discontent to the factions the scope character is in
| Set the gender of the unborn child
| <pre></pre>
| <pre>set_pregnancy_gender = female/male/random</pre>
| character
| none
|-
|-
| add_knows_of_killer
| set_variable
| Adds the right hand side character as knowing of the killer of the scoped object
| Sets a variable
| <pre>dead_person = { add_knows_of_killer = root }</pre>
| <pre>set_variable = { name = X value = Y days = Z }
| character
Where X is the name of the variable used to then access it
| character
Where Y is any event target, bool, value, script value or flag (flag:W)
|-
An optional days where Z is the number of days or script value; this cannot refer to another variable’s value directly, and should instead refer to a script value that checks that variable’s value.
| add_learning_lifestyle_perk_points
This variable will be accessible with <type_>var:X. With type being in a scope object or in a top scope
| Adds lifestyle per points to the given character
Can also be used as set_variable = X (equivalent to set_variable = { name = X value = yes })</pre>
| <pre></pre>
| none
| character
|-
|-
| add_learning_lifestyle_xp
| setup_claim_cb
| Adds lifestyle XP to the given character
| = { attacker = scope:attacker
| <pre></pre>
| <pre> defender = scope:defender
| character
claimant = scope:claimant
  change = scope:change victory = yes/no
take_occupied = yes/no } , this effect will add a scope:cb_prestige_factor with a value based on what's being taken
civil_war = yes # Will vassalize people based on their capital location rather than being fully contained. Won't steal land from people not vassalized</pre>
| none
|-
|-
| add_martial_lifestyle_perk_points
| setup_de_jure_cb
| Adds lifestyle per points to the given character
| = { attacker = scope:attacker
| <pre></pre>
| <pre>defender = scope:defender
| character
change = scope:change
victory = yes/no
title = some title - Optional; will make it target a specific dejure title rather than *everything* that is dejure the attacker's
}, this effect will add a scope:cb_prestige_factor with a value based on what's being taken</pre>
| none
|-
|-
| add_martial_lifestyle_xp
| setup_invasion_cb
| Adds lifestyle XP to the given character
| = { attacker = scope:attacker
| <pre></pre>
| <pre> defender = scope:defender
| character
  change = scope:change victory = yes/no
take_occupied = yes/no } , this effect will add a scope:cb_prestige_factor with a value based on what's being taken</pre>
| none
|-
|-
| add_opinion
| start_struggle
| Adds a temporary opinion modifier, add_opinion = { modifier = X days/months/years = Y target = Z }
| Start a struggle
| <pre>X is a scripted modifier name. Y can be a value or a range "{ A B }" If no timeout are specified, the modifier's scripted default timeout will be used.</pre>
| <pre>start_struggle = { struggle_type = X start_phase = Y } where X is a struggle type, Y is a phase</pre>
| character
| none
|-
|-
| add_perk
| start_tutorial_lesson
| Adds the perk for this character
| Starts the tutorial lesson with the given key. Does nothing if the tutorial is not running, the lesson is completed (or already running), or the lesson cannot be triggered (e.g. trigger fails)
| <pre></pre>
| <pre></pre>
| character
| none
|-
|-
| add_personal_artifact_claim
| trigger_event
| Adds a personal claim on the target artifact to the scoped character
| triggers an event or on_action
| <pre></pre>
| <pre>trigger_event = { id = X days/months/years = Y delayed = yes/no } (for events)
| character
or
| artifact
trigger_event = { on_action = X days/months/years = Y delayed = yes/no } (for on_actions)
|-
Days/months/years are optional and equal to 0 if not specified. If specified, Y can be a value or an inclusive interval "{ A B }" from which the duration will be picked Scopes._Randomly.
| add_piety
delayed = yes will delay the event/on_action to the next event tick even when there's no explicit time interval set (delay, but fire ASAP). By default, delayed = no</pre>
| gives (or takes) piety to a character
| none
| <pre></pre>
| character
|-
|-
| add_piety_experience
| try_create_important_action
| gives (or takes) piety experience to a character
| Tries to create an important action notification. Will keep the current one if already exists.
| <pre></pre>
| <pre>
| character
important_action_type = important_action_type_key - the important action object key to create. Must be defined.
actor = character_actor - optional, can be used by the important action effect
recipient = character_actor - optional, can be used by the important action effect
secondary_actor = character_secontary_actor - optional, can be used by the important action effect
secondary_recipient = character_secondary_recipient - optional, can be used by the important action effect
landed_title = landed_title - optional, can be used by the important action effect
war = war - optional, can be used by the important action effect
artifact = artifact - optional, can be used by the important action effect
culture = culture - optional, can be used by the important action effect</pre>
| none
|-
|-
| add_piety_level
| try_create_suggestion
| increases (or decreases) the piety level of a character
| Tries to create an suggestuib notification. Will keep the current one if already exists.
| <pre></pre>
| <pre>
| character
suggestion_type = suggestion_type_key - the suggestion action object key to create. Must be defined.
actor = character_actor - optional, can be used by the suggestion effect
recipient = character_actor - optional, can be used by the suggestion effect
secondary_actor = character_secontary_actor - optional, can be used by the suggestion effect
secondary_recipient = character_secondary_recipient - optional, can be used by the suggestion effect
landed_title = landed_title - optional, can be used by the suggestion effect</pre>
| none
|-
|-
| add_piety_no_experience
| add_amenity_level
| gives (or takes) piety without experience to a character
| add_amenity_level = { type = food value = 2 }
| <pre></pre>
| <pre>Increases the amenity type by the given value for the scoped character</pre>
| character
| character
|-
|-
| add_pressed_claim
| add_character_flag
| gives a pressed claim to a character
| adds a character flag
| <pre></pre>
| <pre>usage:
add_character_flag = X
add_character_flag = { flag = X days/weeks/years = Y }
where X is the name of the flag and Y is a value or value interval "{ min max }"</pre>
| character
| character
| landed title
|-
|-
| add_prestige
| add_character_modifier
| gives (or takes) prestige to a character
| Add a modifier to a character
| <pre></pre>
| <pre>add_character_modifier = name
add_character_modifier = { modifier = name days/weeks/months/years = int }
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier</pre>
| character
| character
|-
|-
| add_prestige_experience
| add_courtier
| gives (or takes) prestige experience to a character
| Add the target character to the scope character's court
| <pre></pre>
| <pre></pre>
| character
| character
| character
|-
|-
| add_prestige_level
| add_diplomacy_lifestyle_perk_points
| increases (or decreases) the prestige level of a character
| Adds lifestyle per points to the given character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| add_prestige_no_experience
| add_diplomacy_lifestyle_xp
| gives (or takes) prestige without experience to a character
| Adds lifestyle XP to the given character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| add_realm_law
| add_dread
| Adds the given law to the scoped character
| adds (or removes) dread to a character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| add_realm_law_skip_effects
| add_gold
| Adds the given law to the scoped character. Skips the cost and the pass effect, and the revoke effects of the current law
| adds gold to a character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| add_relation_flag
| add_hook
| Adds a flag to an existing relation
| Adds a hook on a character
| <pre>add_relation_flag = {
| <pre>add_hook = { type = X, target = Y, secret = Z, days/months/years = W  }
  relation = scripted_relation
Note: days/months/years optional (taken from hook type otherwise) and can be a value or an interval, secret required for hook types that require it.
  flag = flag_name (declared in the relation's script)
Does send a toast to the player if it's involved.</pre>
  target = other_character
}</pre>
| character
| character
|-
|-
| add_scheme_cooldown
| add_hook_no_toast
| Sets a scheme cooldown for the scope character towards = { target=target_character type=scheme_type days/weeks/months/years = duration }
| Adds a hook on a character
| <pre></pre>
| <pre>add_hook = { type = X, target = Y, secret = Z, days/months/years = }
Note: days/months/years optional (taken from hook type otherwise) and can be a value or an interval, secret required for hook types that require it.
Does NOT send a toast to the player.</pre>
| character
| character
|-
|-
| add_secret
| add_intrigue_lifestyle_perk_points
| Adds a secret
| <pre>add_secret = { type = X target = Y }
Note that if you create a Secret in the immediate effect, the tooltips for other effects run in that Secret's scope (such as reveal_to) are likely to be displayed incorrectly, or not to be displayed at all. This is due to the game generating the tooltip before it actually has a Secret that exists to work off of.
Test rigorously and use custom tooltips if necessary. Creating a Secret in the immediate and then running effects on it in an event option should produce perfectly normal tooltips.</pre>
| character
|
|-
| add_stewardship_lifestyle_perk_points
| Adds lifestyle per points to the given character
| Adds lifestyle per points to the given character
| <pre></pre>
| <pre></pre>
第4,275行: 第4,588行:
|-
|-
| add_stewardship_lifestyle_xp
| add_intrigue_lifestyle_xp
| Adds lifestyle XP to the given character
| Adds lifestyle XP to the given character
| <pre></pre>
| <pre></pre>
第4,281行: 第4,594行:
|-
|-
| add_stress
| add_joined_faction_discontent
| increases (or decreases) stress of a character
| add_joined_faction_discontent = X adds (or subtracts) discontent to the factions the scope character is in
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| add_targeting_factions_discontent
| add_knows_of_killer
| add_targeting_factions_discontent = X adds (or subtracts) discontent to all the factions that are targeting the scope character
| Adds the right hand side character as knowing of the killer of the scoped object
| <pre>dead_person = { add_knows_of_killer = root }</pre>
| character
| character
|-
| add_learning_lifestyle_perk_points
| Adds lifestyle per points to the given character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| add_to_scheme
| add_learning_lifestyle_xp
| Adds a character as an agent to the scheme
| Adds lifestyle XP to the given character
| <pre></pre>
| <pre></pre>
| character
| character
| scheme
|-
|-
| add_trait
| add_martial_lifestyle_perk_points
| Adds a trait to a character (the trait will not be added and no tooltip will be shown if the character isn't eligible for the trait, i.e. when already having the trait, having an opposing trait, not fulfilling the trait's is_potential trigger or being outside of the trait's range)
| Adds lifestyle per points to the given character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| add_trait_force_tooltip
| add_martial_lifestyle_xp
| Adds a trait to a character (if the add_trait effect would not add the trait - i.e. when already having the trait, having an opposing trait, not fulfilling the trait's is_potential trigger or being outside of the trait's range - a tooltip will be shown but the trait will not be added)
| Adds lifestyle XP to the given character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| add_truce_both_ways
| add_opinion
| Sets the both-way truce against the specified character
| Adds a temporary opinion modifier, add_opinion = { modifier = X days/months/years = Y target = Z }
| <pre>'character' specifies the target character
| <pre>X is a scripted modifier name. Y can be a value or a range "{ A B }" If no timeout are specified, the modifier's scripted default timeout will be used.</pre>
'override' says whether it should replace the previous truce even if shorter
'years / months / days' sets the duration of the truce
'result' specifies the result from the scope character's point of view ('white_peace' by default)
'casus_belli' sets the casus belli scope that caused the truce, mutually exclusive with 'name'
'name' sets a custom description. Dynamic description with the current scope
'war' sets the war that caused the truce, mutually exclusive with 'casus_belli'
add_truce_both_ways = { character = X years/months/days = Y override = yes/no result = victory/defeat/white_peace casus_belli/war = Z }</pre>
| character
| character
|-
|-
| add_truce_one_way
| add_perk
| Sets the truce against the specified character
| Adds the perk for this character
| <pre>'character' specifies the target character
'override' says whether it should replace the previous truce even if shorter
'years / months / days' sets the duration of the truce
'result' specifies the result from the scope character's point of view ('white_peace' by default)
'casus_belli' sets the casus belli scope that caused the truce, mutually exclusive with 'name'
'name' sets a custom description. Dynamic description with the current scope
add_truce_one_way = { character = X years/months/days = Y override = yes/no result = victory/defeat/white_peace casus_belli/war = Z }</pre>
| character
|
|-
| add_tyranny
| adds (or removes) tyranny to (or from) a character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| add_unpressed_claim
| add_personal_artifact_claim
| gives an unpressed claim to a character
| Adds a personal claim on the target artifact to the scoped character
| <pre></pre>
| <pre></pre>
| character
| character
| landed title
| artifact
|-
|-
| add_visiting_courtier
| add_piety
| Add the target character as the scope character's guest
| gives (or takes) piety to a character
| <pre></pre>
| <pre></pre>
| character
| character
| character
|-
|-
| allow_alliance
| add_piety_experience
| Allows (previously broken) alliance with the target character
| gives (or takes) piety experience to a character
| <pre></pre>
| <pre></pre>
| character
| character
| character
|-
|-
| allow_in_scheme
| add_piety_level
| Allow the character to join the scheme as an agent
| increases (or decreases) the piety level of a character
| <pre></pre>
| <pre></pre>
| character
| character
| scheme
|-
|-
| apply_ai_vassal_obligation_liege_most_desired
| add_piety_no_experience
| Apply the new level for the most desired AI obligation level the liege in the contract wants
| gives (or takes) piety without experience to a character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| apply_ai_vassal_obligation_vassal_most_desired
| add_pressed_claim
| Apply the new level for the most desired AI obligation level the vassal in the contract wants
| gives a pressed claim to a character
| <pre></pre>
| <pre></pre>
| character
| character
| landed title
|-
|-
| appoint_court_position
| add_prestige
| Appoints the target character in target court position within scoped character's court
| gives (or takes) prestige to a character
| <pre>
| <pre></pre>
recipient = character scope - target character to receive the title
court_position = court position type - court position type to assign the receiver</pre>
| character
| character
|-
|-
| assign_council_task
| add_prestige_experience
| Assigns the target character to the council task
| gives (or takes) prestige experience to a character
| <pre>assign_council_task = {
| <pre></pre>
   council_task = council_task_scope
   target = character_taking_the_position   fire_on_actions = [yes]
}</pre>
| character
| character
|-
|-
| assign_councillor_type
| add_prestige_level
| Assigns the target character to the first available council position of the type available. { type = council_position_type_key target = character_taking_the_position fire_on_actions = [yes] }
| increases (or decreases) the prestige level of a character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| banish
| add_prestige_no_experience
| The character gets banished.
| gives (or takes) prestige without experience to a character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| becomes_independent
| add_realm_law
| becomes and independent ruler. becomes_independent = { change = 'previously created title_and_vassal_change'
| Adds the given law to the scoped character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| break_alliance
| add_realm_law_skip_effects
| Breaks the alliance with the target character
| Adds the given law to the scoped character. Skips the cost and the pass effect, and the revoke effects of the current law
| <pre></pre>
| <pre></pre>
| character
| character
| character
|-
|-
| cancel_truce_both_ways
| add_relation_flag
| Ends the truce against the specified character, and theirs against the scoped character. cancel_truce_both_ways = scope:character
| Adds a flag to an existing relation
| <pre></pre>
| <pre>add_relation_flag = {
| character
  relation = scripted_relation
  flag = flag_name (declared in the relation's script)
  target = other_character
}</pre>
| character
| character
|
|-
|-
| cancel_truce_one_way
| add_scheme_cooldown
| Ends the truce against the specified character. cancel_truce_one_way = scope:character
| Sets a scheme cooldown for the scope character towards = { target=target_character type=scheme_type days/weeks/months/years = duration }
| <pre></pre>
| <pre></pre>
| character
| character
| character
|-
|-
| change_age
| add_secret
| Changes the character's age by the given amount. Sets age to 0 if it'd end up below 0. Note that this will completely bypass birthday on-actions, age-related health, and so on, just like the console command
| Adds a secret
| <pre>  Usage: change_age = script value</pre>
| <pre>add_secret = { type = X target = Y }
Note that if you create a Secret in the immediate effect, the tooltips for other effects run in that Secret's scope (such as reveal_to) are likely to be displayed incorrectly, or not to be displayed at all. This is due to the game generating the tooltip before it actually has a Secret that exists to work off of.
Test rigorously and use custom tooltips if necessary. Creating a Secret in the immediate and then running effects on it in an event option should produce perfectly normal tooltips.</pre>
| character
| character
|-
|-
| change_current_court_grandeur
| add_stewardship_lifestyle_perk_points
| Changes the current court grandeur of a character with a royal court, clamped between NRoyalCourt::COURT_GRANDEUR_MIN and NRoyalCourt::COURT_GRANDEUR_MAX.
| Adds lifestyle per points to the given character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| change_current_weight
| add_stewardship_lifestyle_xp
| Change the current weight of the scoped character
| Adds lifestyle XP to the given character
| <pre>change_current_weight = 20</pre>
| <pre></pre>
| character
| character
|-
|-
| change_first_name
| add_stress
| Change the first name of a character
| increases (or decreases) stress of a character
| <pre>change_first_name = <localization_key>
| <pre></pre>
change_first_name = scope:name/var:name # containing a flag with a localization key
change_first_name = { template_character = scope:character } # copy name from the template character</pre>
| character
| character
|-
|-
| change_government
| add_targeting_factions_discontent
| changes the government of a character
| add_targeting_factions_discontent = X adds (or subtracts) discontent to all the factions that are targeting the scope character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| change_liege
| add_to_scheme
| = { liege = 'Character that should become the new liege' change = 'previously created title_and_vassal_change', adds a liege change
| Adds a character as an agent to the scheme
| <pre></pre>
| <pre></pre>
| character
| character
| scheme
|-
|-
| change_prison_type
| add_trait
| Changes the charater's prison type. Scoped character is the prisoner. Accepts any static modifier (see also improson effect).
| Adds a trait to a character (the trait will not be added and no tooltip will be shown if the character isn't eligible for the trait, i.e. when already having the trait, having an opposing trait, not fulfilling the trait's is_potential trigger or being outside of the trait's range)
| <pre>change_prison_type = house_arrest</pre>
| <pre></pre>
| character
| character
|-
|-
| change_target_weight
| add_trait_force_tooltip
| Change the target weight of the scoped character
| Adds a trait to a character (if the add_trait effect would not add the trait - i.e. when already having the trait, having an opposing trait, not fulfilling the trait's is_potential trigger or being outside of the trait's range - a tooltip will be shown but the trait will not be added)
| <pre>change_target_weight = 20</pre>
| character
|
|-
| change_trait_rank
| Changes the trait rank = { trait = trait_group rank = change max = maximum new rank }
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| clear_forced_vote
| add_truce_both_ways
| Clears forced voting
| Sets the both-way truce against the specified character
| <pre>clear_forced_vote = yes</pre>
| <pre>'character' specifies the target character
'override' says whether it should replace the previous truce even if shorter
'years / months / days' sets the duration of the truce
'result' specifies the result from the scope character's point of view ('white_peace' by default)
'casus_belli' sets the casus belli scope that caused the truce, mutually exclusive with 'name'
'name' sets a custom description. Dynamic description with the current scope
'war' sets the war that caused the truce, mutually exclusive with 'casus_belli'
add_truce_both_ways = { character = X years/months/days = Y override = yes/no result = victory/defeat/white_peace casus_belli/war = Z }</pre>
| character
| character
|-
|-
| consume_banish_reasons
| add_truce_one_way
| 'Consume' all banish reasons that the scoped character has on the target character. Until they get a new reason, they cannot banish the target again.
| Sets the truce against the specified character
| <pre>'character' specifies the target character
'override' says whether it should replace the previous truce even if shorter
'years / months / days' sets the duration of the truce
'result' specifies the result from the scope character's point of view ('white_peace' by default)
'casus_belli' sets the casus belli scope that caused the truce, mutually exclusive with 'name'
'name' sets a custom description. Dynamic description with the current scope
add_truce_one_way = { character = X years/months/days = Y override = yes/no result = victory/defeat/white_peace casus_belli/war = Z }</pre>
| character
|
|-
| add_tyranny
| adds (or removes) tyranny to (or from) a character
| <pre></pre>
| <pre></pre>
| character
| character
| character
|-
|-
| consume_divorce_reasons
| add_unpressed_claim
| 'Consume' all divorce reason that the scoped character has on the target character. Until they get a new reason, they cannot divorce the target again.
| gives an unpressed claim to a character
| <pre></pre>
| <pre></pre>
| character
| character
| character
| landed title
|-
|-
| consume_execute_reasons
| add_visiting_courtier
| 'Consume' all execute reasons that the scoped character has on the target character. Until they get a new reason, they cannot execute the target again.
| Add the target character as the scope character's guest
| <pre></pre>
| <pre></pre>
| character
| character
| character
| character
|-
|-
| consume_imprisonment_reasons
| allow_alliance
| 'Consume' all imprisonment reasons that the scoped character has on the target character. Until they get a new reason, they cannot imprison the target again.
| Allows (previously broken) alliance with the target character
| <pre></pre>
| <pre></pre>
| character
| character
| character
| character
|-
|-
| consume_revoke_title_reason
| allow_in_scheme
| 'Consume' 1 revoke title reason that the scoped character has on the target character.
| Allow the character to join the scheme as an agent
| <pre></pre>
| <pre></pre>
| character
| character
| character
| scheme
|-
|-
| copy_inheritable_appearance_from
| apply_ai_vassal_obligation_liege_most_desired
| copies the inheritable appearance attributes (inheritable genes in the character's DNA string) from the target character to the scoped character
| Apply the new level for the most desired AI obligation level the liege in the contract wants
| <pre></pre>
| <pre></pre>
| character
| character
| character
|-
|-
| copy_localized_text
| apply_ai_vassal_obligation_vassal_most_desired
| Copies a piece of localized text from the target character for the given key.
| Apply the new level for the most desired AI obligation level the vassal in the contract wants
| <pre>copy_localized_text = { key = key target = character }</pre>
| <pre></pre>
| character
| character
|-
|-
| create_alliance
| appoint_court_position
| Create an alliance between the scoped character and the target. The allied through characters determine who gets checked against for if the alliance should persist or not.
| Appoints the target character in target court position within scoped character's court
| <pre>create_alliance = {
| <pre>
target = scope
recipient = character scope - target character to receive the title
allied_through_owner = scope
court_position = court position type - court position type to assign the receiver</pre>
allied_through_target = scope
}
OR as a short hand use just the target to use the owner and target as the allied through characters
create_alliance = scope</pre>
| character
| character
|-
|-
| create_artifact
| assign_council_task
| Creates a new artifact and adds it to the inventory of the given character
| Assigns the target character to the council task
| <pre>
| <pre>assign_council_task = {
Be aware that we make use of the current scopes implicitly. This is done in common/artifacts/visuals
   council_task = council_task_scope
name = dynamic description - artifact name
   target = character_taking_the_position   fire_on_actions = [yes]
description = dynamic description - artifact description
}</pre>
rarity = enum - artifact rarity, ex. legendary
type = flag - inventory slot type, ex. trinket
modifier = static modifier - applied to the character whom wields this artifact
durability = script value - new durability, will be max by default
max_durability = script value - Optional. A value for the max durability, which would override the one normally assigned by the defines
decaying = yes/no - Optional. Set if artifact decays with time. Yes by default
history = artifact history entry - custom history entry to denote for example that this is artifact was reforged by someone else than the owner
  type = artifact history entry type - available types:
   created_before_history
   created
   discovered
   claimed_by_house
   given
   stolen
   inherited
   conquest
   taken_in_siege
   taken_in_battle
   won_in_duel
   reforged
template = artifact scripted template - a scripted base template with triggers and modifiers
visuals = artifact visual type - how this artifact should appear visually
generate_history = bool - automatically generate a new history entry if none has been scripted?
quality = script value - new quality, used in AI scoring
wealth = script value - new wealth, used in AI scoring
creator = character scope - set a custom creator of the artifact ( default is the owner )
visuals_source = scope containing landed title, dynasty or house - set a source of coat of arms graphics for the artifact
(only few artifact models actually make use of it. Most notable - banners)
save_scope_as = new artifact - an optional way to get a reference to the newly created artifact
title_history = title - history entries of the given title will be added to the artifact history
title_history_date = game date - from which date onwards to copy historical entries from given title
creator = character scope - set a custom creator of the artifact ( default is the owner )</pre>
| character
| character
|-
|-
| create_cadet_branch
| assign_councillor_type
| The scope character creates a cadet branch of the house he is in [yes|no]
| Assigns the target character to the first available council position of the type available. { type = council_position_type_key target = character_taking_the_position fire_on_actions = [yes] }
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| create_divergent_culture
| banish
| Creates a new divergent culture from the scope character's culture. The new culture will keep all pillars and traditions of the parent culture — it is up to the user to add or remove pillars and traditions as appropriate.The new divergent culture is saved as scope:new_culture.
| The character gets banished.
| <pre>create_divergent_culture = yes</pre>
| <pre></pre>
| character
| character
|-
|-
| create_divergent_culture_with_side_effects
| becomes_independent
| Creates a new divergent culture from the scope character's culture. This also incurs the cost, does conversion, and such, just as if you'd diverged via the UI. Unlike create_divergent_culture, it will change ethos and suchThe new culture is NOT saved as a scope due to technical limitations.
| becomes and independent ruler. becomes_independent = { change = 'previously created title_and_vassal_change'
| <pre>create_divergent_culture_with_side_effects = yes</pre>
| <pre></pre>
| character
| character
|-
|-
| create_divergent_culture_with_side_effects_excluding_cost
| break_alliance
| Creates a new divergent culture from the scope character's culture. Ignores the cost, does conversion, and such, just as if you'd diverged via the UI. Unlike create_divergent_culture, it will change ethos and suchThe new culture is NOT saved as a scope due to technical limitations.
| Breaks the alliance with the target character
| <pre>create_divergent_culture_with_side_effects_excluding_cost = yes</pre>
| <pre></pre>
| character
| character
| character
|
|-
|-
| create_faction
| cancel_truce_both_ways
| the scoped character creates a faction of the specified type against the specified target, create_faction = { type = X target = Y }
| Ends the truce against the specified character, and theirs against the scoped character. cancel_truce_both_ways = scope:character
| <pre></pre>
| <pre></pre>
| character
| character
| character
|-
|-
| create_hybrid_culture
| cancel_truce_one_way
| Creates a new hybrid culture from the scope character's culture and the RHS culture. The new culture will have a random mix of pillars and traditions from both, like when the AI hybridizes. The new hybrid culture is saved as scope:new_culture.
| Ends the truce against the specified character. cancel_truce_one_way = scope:character
| <pre>create_hybrid_culture = culture:anglo-saxon</pre>
| <pre></pre>
| character
| character
| culture
|-
| create_hybrid_culture_with_side_effects
| Creates a new hybrid culture from the scope character's culture and the RHS culture. The new culture will have a random mix of pillars and traditions from both, like when the AI hybridizes. This also incurs the cost, does conversion, and such, just as if you'd hybridized via the UI. The new hybrid culture is NOT saved as a scope due to technical limitations.
| <pre>create_hybrid_culture_with_side_effects = culture:anglo-saxon</pre>
| character
| character
| culture
|-
|-
| create_inspiration
| change_age
| create_inspiration = inspiration_type
| Changes the character's age by the given amount. Sets age to 0 if it'd end up below 0. Note that this will completely bypass birthday on-actions, age-related health, and so on, just like the console command
| <pre>Creates an inspiration of a given type owned by scoped character, new inspiration is saved as scope:new_inspiration
| <pre>   Usage: change_age = script value</pre>
create_inspiration = { type = inspiration_type gold = script_value }
As above but overrides the base cost compared to the one defined in the type</pre>
| character
| character
|-
|-
| create_story
| change_current_court_grandeur
| creates and initializes a story cycle with the current character as owner
| Changes the current court grandeur of a character with a royal court, clamped between NRoyalCourt::COURT_GRANDEUR_MIN and NRoyalCourt::COURT_GRANDEUR_MAX.
| <pre>create_story = story_type
| <pre></pre>
create_story = {
type = story_type
save_scope_as/save_temporary_scope_as = scope_name # optional way to get a reference to the new story}</pre>
| character
| character
|-
|-
| death
| change_current_weight
| kills a character, death = { killer = X death_reason = Y artifact = Z }, where X is a character and Y is one of the death reason keys. Optionally artifact Z will be used as the killing artifact instead of the defaulted one from the killer's slot for that death reason's definition. Or death = natural which will pick a natural death reason to kill the character from.
| Change the current weight of the scoped character
| <pre></pre>
| <pre>change_current_weight = 20</pre>
| character
| character
|-
|-
| depose
| change_first_name
| The character gets deposed.
| Change the first name of a character
| <pre></pre>
| <pre>change_first_name = <localization_key>
change_first_name = scope:name/var:name # containing a flag with a localization key
change_first_name = { template_character = scope:character } # copy name from the template character</pre>
| character
| character
|-
|-
| destroy_title
| change_government
| Destroys a title
| changes the government of a character
| <pre></pre>
| <pre></pre>
| character
| character
| landed title
|-
|-
| end_pregnancy
| change_liege
| end a pregnancy
| = { liege = 'Character that should become the new liege' change = 'previously created title_and_vassal_change', adds a liege change
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| every_alert_creatable_title
| change_prison_type
| Iterate through all titles that can be created by the character. (only for alerts)
| Changes the charater's prison type. Scoped character is the prisoner. Accepts any static modifier (see also improson effect).
| <pre>every_alert_creatable_title = { limit = { <triggers> } <effects> }</pre>
| <pre>change_prison_type = house_arrest</pre>
| character
| character
| landed title
|-
|-
| every_alert_usurpable_title
| change_target_weight
| Iterate through all titles that can be usurped by the character. (only for alerts)
| Change the target weight of the scoped character
| <pre>every_alert_usurpable_title = { limit = { <triggers> } <effects> }</pre>
| <pre>change_target_weight = 20</pre>
| character
| character
| landed title
|-
|-
| every_ally
| change_trait_rank
| Iterate through all allies
| Changes the trait rank = { trait = trait_group rank = change max = maximum new rank }
| <pre>every_ally = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| character
| character
|
|-
| clear_forced_vote
| Clears forced voting
| <pre>clear_forced_vote = yes</pre>
| character
| character
|
|-
|-
| every_ancestor
| consume_banish_reasons
| Iterate through all the ancestors of the scope character up to 5 generations
| 'Consume' all banish reasons that the scoped character has on the target character. Until they get a new reason, they cannot banish the target again.
| <pre>every_ancestor = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| character
| character
| character
| character
|-
|-
| every_army
| consume_divorce_reasons
| Iterate through all armies
| 'Consume' all divorce reason that the scoped character has on the target character. Until they get a new reason, they cannot divorce the target again.
| <pre>every_army = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| character
| character
| character
| army
|-
|-
| every_character_artifact
| consume_execute_reasons
| Iterate through all artifacts in a given characters inventory
| 'Consume' all execute reasons that the scoped character has on the target character. Until they get a new reason, they cannot execute the target again.
| <pre>every_character_artifact = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| character
| character
| character
| artifact
|-
|-
| every_character_to_title_neighboring_and_across_water_county
| consume_imprisonment_reasons
| Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
| 'Consume' all imprisonment reasons that the scoped character has on the target character. Until they get a new reason, they cannot imprison the target again.
| <pre>every_character_to_title_neighboring_and_across_water_county = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| character
| character
| landed title
|-
| every_character_to_title_neighboring_and_across_water_duchy
| Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| <pre>every_character_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
|-
| every_character_to_title_neighboring_and_across_water_empire
| consume_revoke_title_reason
| Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| 'Consume' 1 revoke title reason that the scoped character has on the target character.
| <pre>every_character_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| character
| character
| landed title
|-
| every_character_to_title_neighboring_and_across_water_kingdom
| Scopes from a character to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| <pre>every_character_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
|-
| every_character_to_title_neighboring_county
| copy_inheritable_appearance_from
| Scopes from a character to a neighboring county (looking trough the de Jure lieges)
| copies the inheritable appearance attributes (inheritable genes in the character's DNA string) from the target character to the scoped character
| <pre>every_character_to_title_neighboring_county = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| character
| character
| landed title
|-
| every_character_to_title_neighboring_duchy
| Scopes from a character to a neighboring duchy (looking trough the de Jure lieges)
| <pre>every_character_to_title_neighboring_duchy = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
|-
| every_character_to_title_neighboring_empire
| copy_localized_text
| Scopes from a character to a neighboring empire (looking trough the de Jure lieges)
| Copies a piece of localized text from the target character for the given key.
| <pre>every_character_to_title_neighboring_empire = { limit = { <triggers> } <effects> }</pre>
| <pre>copy_localized_text = { key = key target = character }</pre>
| character
| character
| landed title
|-
|-
| every_character_to_title_neighboring_kingdom
| create_alliance
| Scopes from a character to a neighboring kingdom (looking trough the de Jure lieges)
| Create an alliance between the scoped character and the target. The allied through characters determine who gets checked against for if the alliance should persist or not.
| <pre>every_character_to_title_neighboring_kingdom = { limit = { <triggers> } <effects> }</pre>
| <pre>create_alliance = {
target = scope
allied_through_owner = scope
allied_through_target = scope
}
OR as a short hand use just the target to use the owner and target as the allied through characters
create_alliance = scope</pre>
| character
| character
| landed title
|-
|-
| every_character_war
| create_artifact
| Wars of the scoped character
| Creates a new artifact and adds it to the inventory of the given character
| <pre>every_character_war = { limit = { <triggers> } <effects> }</pre>
| <pre>
Be aware that we make use of the current scopes implicitly. This is done in common/artifacts/visuals
name = dynamic description - artifact name
description = dynamic description - artifact description
rarity = enum - artifact rarity, ex. legendary
type = flag - inventory slot type, ex. trinket
modifier = static modifier - applied to the character whom wields this artifact
durability = script value - new durability, will be max by default
max_durability = script value - Optional. A value for the max durability, which would override the one normally assigned by the defines
decaying = yes/no - Optional. Set if artifact decays with time. Yes by default
history = artifact history entry - custom history entry to denote for example that this is artifact was reforged by someone else than the owner
  type = artifact history entry type - available types:
   created_before_history
   created
   discovered
   claimed_by_house
   given
   stolen
   inherited
   conquest
   taken_in_siege
   taken_in_battle
   won_in_duel
   reforged
template = artifact scripted template - a scripted base template with triggers and modifiers
visuals = artifact visual type - how this artifact should appear visually
generate_history = bool - automatically generate a new history entry if none has been scripted?
quality = script value - new quality, used in AI scoring
wealth = script value - new wealth, used in AI scoring
creator = character scope - set a custom creator of the artifact ( default is the owner )
visuals_source = scope containing landed title, dynasty or house - set a source of coat of arms graphics for the artifact
(only few artifact models actually make use of it. Most notable - banners)
save_scope_as = new artifact - an optional way to get a reference to the newly created artifact
title_history = title - history entries of the given title will be added to the artifact history
title_history_date = game date - from which date onwards to copy historical entries from given title
creator = character scope - set a custom creator of the artifact ( default is the owner )</pre>
| character
| character
| war
|-
|-
| every_child
| create_cadet_branch
| Iterate through all children
| The scope character creates a cadet branch of the house he is in [yes|no]
| <pre>every_child = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| character
| character
| character
|
|-
|-
| every_claim
| create_divergent_culture
| Iterate through the titles of all claims held by a character; parameters: explicit = yes/no/all pressed = yes/no/all
| Creates a new divergent culture from the scope character's culture. The new culture will keep all pillars and traditions of the parent culture — it is up to the user to add or remove pillars and traditions as appropriate.The new divergent culture is saved as scope:new_culture.
| <pre>every_claim = { limit = { <triggers> } <effects> }</pre>
| <pre>create_divergent_culture = yes</pre>
| character
| character
| landed title
|-
|-
| every_claimed_artifact
| create_divergent_culture_with_side_effects
| Iterate through all claimed artifacts of the scoped character
| Creates a new divergent culture from the scope character's culture. This also incurs the cost, does conversion, and such, just as if you'd diverged via the UI. Unlike create_divergent_culture, it will change ethos and suchThe new culture is NOT saved as a scope due to technical limitations.
| <pre>every_claimed_artifact = { limit = { <triggers> } <effects> }</pre>
| <pre>create_divergent_culture_with_side_effects = yes</pre>
| character
| character
| artifact
|-
|-
| every_close_family_member
| create_divergent_culture_with_side_effects_excluding_cost
| Iterate through all the close family [father, mother, siblings, children, grandparents]
| Creates a new divergent culture from the scope character's culture. Ignores the cost, does conversion, and such, just as if you'd diverged via the UI. Unlike create_divergent_culture, it will change ethos and suchThe new culture is NOT saved as a scope due to technical limitations.
| <pre>every_close_family_member = { limit = { <triggers> } <effects> }</pre>
| <pre>create_divergent_culture_with_side_effects_excluding_cost = yes</pre>
| character
| character
| character
|
|-
|-
| every_close_or_extended_family_member
| create_faction
| Iterate through all the close and extended relatives [father, mother, siblings, children, grandparents, uncles/aunts, nephew/niece, cousins]
| the scoped character creates a faction of the specified type against the specified target, create_faction = { type = X target = Y }
| <pre>every_close_or_extended_family_member = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| character
| character
| character
|
|-
|-
| every_concubine
| create_hybrid_culture
| Iterate through all concubines
| Creates a new hybrid culture from the scope character's culture and the RHS culture. The new culture will have a random mix of pillars and traditions from both, like when the AI hybridizes. The new hybrid culture is saved as scope:new_culture.
| <pre>every_concubine = { limit = { <triggers> } <effects> }</pre>
| <pre>create_hybrid_culture = culture:anglo-saxon</pre>
| character
| character
| character
| culture
|-
|-
| every_consort
| create_hybrid_culture_with_side_effects
| Iterate through all consorts (concubines and spouses)
| Creates a new hybrid culture from the scope character's culture and the RHS culture. The new culture will have a random mix of pillars and traditions from both, like when the AI hybridizes. This also incurs the cost, does conversion, and such, just as if you'd hybridized via the UI. The new hybrid culture is NOT saved as a scope due to technical limitations.
| <pre>every_consort = { limit = { <triggers> } <effects> }</pre>
| <pre>create_hybrid_culture_with_side_effects = culture:anglo-saxon</pre>
| character
| character
| character
| culture
|-
|-
| every_councillor
| create_inspiration
| Iterate through all councillors
| create_inspiration = inspiration_type
| <pre>every_councillor = { limit = { <triggers> } <effects> }</pre>
| <pre>Creates an inspiration of a given type owned by scoped character, new inspiration is saved as scope:new_inspiration
create_inspiration = { type = inspiration_type gold = script_value }
As above but overrides the base cost compared to the one defined in the type</pre>
| character
| character
|
|-
| create_story
| creates and initializes a story cycle with the current character as owner
| <pre>create_story = story_type
create_story = {
type = story_type
save_scope_as/save_temporary_scope_as = scope_name # optional way to get a reference to the new story}</pre>
| character
| character
|
|-
|-
| every_court_position_employer
| death
| Iterates through all characters that employ the scoped character in any court position.
| kills a character, death = { killer = X death_reason = Y artifact = Z }, where X is a character and Y is one of the death reason keys. Optionally artifact Z will be used as the killing artifact instead of the defaulted one from the killer's slot for that death reason's definition. Or death = natural which will pick a natural death reason to kill the character from.
| <pre>every_court_position_employer = { limit = { <triggers> } <effects> }</pre>
| <pre></pre>
| character
| character
|
|-
| depose
| The character gets deposed.
| <pre></pre>
| character
| character
|
|-
|-
| every_court_position_holder
| destroy_title
| Iterates through all characters employed by the scoped character in the target court position.
| Destroys a title
| <pre>every_court_position_holder = { limit = { <triggers> } <effects> }</pre>
| <pre>destroy_title = title:<title></pre>
| character
| character
| landed title
|-
| end_pregnancy
| end a pregnancy
| <pre></pre>
| character
| character
|
|-
|-
| every_courtier
| every_alert_creatable_title
| Iterate through all courtiers
| Iterate through all titles that can be created by the character. (only for alerts)
| <pre>every_courtier = { limit = { <triggers> } <effects> }</pre>
| <pre>every_alert_creatable_title = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
| every_alert_usurpable_title
| Iterate through all titles that can be usurped by the character. (only for alerts)
| <pre>every_alert_usurpable_title = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
|-
| every_courtier_away
| every_ally
| Iterate through all courtiers that are away
| Iterate through all allies
| <pre>every_courtier_away = { limit = { <triggers> } <effects> }</pre>
| <pre>every_ally = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_courtier_or_guest
| every_ancestor
| Iterate through all courtiers and guests (pool and foreign court guests)
| Iterate through all the ancestors of the scope character up to 5 generations
| <pre>every_courtier_or_guest = { limit = { <triggers> } <effects> }</pre>
| <pre>every_ancestor = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_de_jure_claim
| every_army
| Iterate through all de jure claims for a character
| Iterate through all armies
| <pre>every_de_jure_claim = { limit = { <triggers> } <effects> }</pre>
| <pre>every_army = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
| army
|-
|-
| every_diplomacy_councillor
| every_character_artifact
| Iterate through all diplomacy-based councillors
| Iterate through all artifacts in a given characters inventory
| <pre>every_diplomacy_councillor = { limit = { <triggers> } <effects> }</pre>
| <pre>every_character_artifact = { limit = { <triggers> } <effects> }</pre>
| character
| character
| artifact
|-
| every_character_struggle
| Iterate through all struggles that character is involved in.
| <pre>every_character_struggle = { limit = { <triggers> } <effects> }
Optional: Narrow down the involvement status *_character_struggle = { involvement = involved | interloper }</pre>
| character
| character
| struggle
|-
|-
| every_directly_owned_province
| every_character_to_title_neighboring_and_across_water_county
| Iterate through all directly owned provinces
| Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
| <pre>every_directly_owned_province = { limit = { <triggers> } <effects> }</pre>
| <pre>every_character_to_title_neighboring_and_across_water_county = { limit = { <triggers> } <effects> }</pre>
| character
| character
| province
| landed title
|-
|-
| every_election_title
| every_character_to_title_neighboring_and_across_water_duchy
| Iterate through all titles the scoped character can vote on
| Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| <pre>every_election_title = { limit = { <triggers> } <effects> }</pre>
| <pre>every_character_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
| landed title
|-
|-
| every_equipped_character_artifact
| every_character_to_title_neighboring_and_across_water_empire
| Iterate through all equipped artifacts in a given characters inventory
| Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| <pre>every_equipped_character_artifact = { limit = { <triggers> } <effects> }</pre>
| <pre>every_character_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } <effects> }</pre>
| character
| character
| artifact
| landed title
|-
|-
| every_extended_family_member
| every_character_to_title_neighboring_and_across_water_kingdom
| Iterate through all the extended family [uncles/aunts, nephew/niece, cousins]
| Scopes from a character to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| <pre>every_extended_family_member = { limit = { <triggers> } <effects> }</pre>
| <pre>every_character_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| landed title
|-
|-
| every_foreign_court_guest
| every_character_to_title_neighboring_county
| Iterate through all guests visiting from another court (in contrast to pool_guest they have a liege)
| Scopes from a character to a neighboring county (looking trough the de Jure lieges)
| <pre>every_foreign_court_guest = { limit = { <triggers> } <effects> }</pre>
| <pre>every_character_to_title_neighboring_county = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
| every_character_to_title_neighboring_duchy
| Scopes from a character to a neighboring duchy (looking trough the de Jure lieges)
| <pre>every_character_to_title_neighboring_duchy = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
|-
| every_former_concubine
| every_character_to_title_neighboring_empire
| Iterate through all former concubines. Not persisted past death
| Scopes from a character to a neighboring empire (looking trough the de Jure lieges)
| <pre>every_former_concubine = { limit = { <triggers> } <effects> }</pre>
| <pre>every_character_to_title_neighboring_empire = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
| every_character_to_title_neighboring_kingdom
| Scopes from a character to a neighboring kingdom (looking trough the de Jure lieges)
| <pre>every_character_to_title_neighboring_kingdom = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
|-
| every_former_concubinist
| every_character_war
| Iterate through all former concubinists. Not persisted past death
| Wars of the scoped character
| <pre>every_former_concubinist = { limit = { <triggers> } <effects> }</pre>
| <pre>every_character_war = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| war
|-
|-
| every_former_spouse
| every_child
| Iterate through all former spouses
| Iterate through all children
| <pre>every_former_spouse = { limit = { <triggers> } <effects> }</pre>
| <pre>every_child = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_general_councillor
| every_claim
| Iterate through all councillors that are not related to a skill
| Iterate through the titles of all claims held by a character; parameters: explicit = yes/no/all pressed = yes/no/all
| <pre>every_general_councillor = { limit = { <triggers> } <effects> }</pre>
| <pre>every_claim = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
| every_claimed_artifact
| Iterate through all claimed artifacts of the scoped character
| <pre>every_claimed_artifact = { limit = { <triggers> } <effects> }</pre>
| character
| character
| artifact
|-
|-
| every_heir
| every_close_family_member
| Heirs of the scoped character
| Iterate through all the close family [father, mother, siblings, children, grandparents]
| <pre>every_heir = { limit = { <triggers> } <effects> }</pre>
| <pre>every_close_family_member = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_heir_title
| every_close_or_extended_family_member
| Iterate through all landed titles character is heir to
| Iterate through all the close and extended relatives [father, mother, siblings, children, grandparents, uncles/aunts, nephew/niece, cousins]
| <pre>every_heir_title = { limit = { <triggers> } <effects> }</pre>
| <pre>every_close_or_extended_family_member = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| landed title
|-
|-
| every_heir_to_title
| every_concubine
| Iterate through all titles the scoped character is heir to
| Iterate through all concubines
| <pre>every_heir_to_title = { limit = { <triggers> } <effects> }</pre>
| <pre>every_concubine = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| landed title
|-
|-
| every_held_title
| every_consort
| Iterate through all held landed titles
| Iterate through all consorts (concubines and spouses)
| <pre>every_held_title = { limit = { <triggers> } <effects> }</pre>
| <pre>every_consort = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
| every_hired_mercenary
| Iterate through all hired mercenary companies
| <pre>every_hired_mercenary = { limit = { <triggers> } <effects> }</pre>
| character
| character
| mercenary company
|-
|-
| every_hooked_character
| every_councillor
| Iterate through all characters this character has a hook on
| Iterate through all councillors
| <pre>every_hooked_character = { limit = { <triggers> } <effects> }</pre>
| <pre>every_councillor = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_hostile_raider
| every_court_position_employer
| Iterate through anyone the character is hostile to due to their top-liege's realm having been raided
| Iterates through all characters that employ the scoped character in any court position.
| <pre>every_hostile_raider = { limit = { <triggers> } <effects> }</pre>
| <pre>every_court_position_employer = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_intrigue_councillor
| every_court_position_holder
| Iterate through all intrigue-based councillors
| Iterates through all characters employed by the scoped character in the target court position.
| <pre>every_intrigue_councillor = { limit = { <triggers> } <effects> }</pre>
| <pre>every_court_position_holder = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_knight
| every_courtier
| Iterate through all knights
| Iterate through all courtiers
| <pre>every_knight = { limit = { <triggers> } <effects> }</pre>
| <pre>every_courtier = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_known_secret
| every_courtier_away
| Iterate through all secrets known by the character
| Iterate through all courtiers that are away
| <pre>every_known_secret = { limit = { <triggers> } <effects> }</pre>
| <pre>every_courtier_away = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| secret
|-
|-
| every_learning_councillor
| every_courtier_or_guest
| Iterate through all learning-based councillors
| Iterate through all courtiers and guests (pool and foreign court guests)
| <pre>every_learning_councillor = { limit = { <triggers> } <effects> }</pre>
| <pre>every_courtier_or_guest = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_liege_or_above
| every_de_jure_claim
| Iterate through all lieges above a character (skipping the character themselves)
| Iterate through all de jure claims for a character
| <pre>every_liege_or_above = { limit = { <triggers> } <effects> }</pre>
| <pre>every_de_jure_claim = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| landed title
|-
|-
| every_martial_councillor
| every_diplomacy_councillor
| Iterate through all martial-based councillors
| Iterate through all diplomacy-based councillors
| <pre>every_martial_councillor = { limit = { <triggers> } <effects> }</pre>
| <pre>every_diplomacy_councillor = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_neighboring_and_across_water_realm_same_rank_owner
| every_directly_owned_province
| A sub-realm or realm bordering the scope character's realm (including across water) and has the same rank as the scope character (look for lieges of he owner of the land if necessary)
| Iterate through all directly owned provinces
| <pre>every_neighboring_and_across_water_realm_same_rank_owner = { limit = { <triggers> } <effects> }</pre>
| <pre>every_directly_owned_province = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| province
|-
|-
| every_neighboring_and_across_water_top_liege_realm
| every_election_title
| A realm with a different top liege neighboring the realm of the scope character's top liege (including across water); switches to the realm's top title. Can be based on borders a day or two out of date
| Iterate through all titles the scoped character can vote on
| <pre>every_neighboring_and_across_water_top_liege_realm = { limit = { <triggers> } <effects> }</pre>
| <pre>every_election_title = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
| landed title
|-
|-
| every_neighboring_and_across_water_top_liege_realm_owner
| every_equipped_character_artifact
| A realm with a different top liege neighboring the realm of the scope character's top liege (including across water); switches to the holder of the realm. Can be based on borders a day or two out of date
| Iterate through all equipped artifacts in a given characters inventory
| <pre>every_neighboring_and_across_water_top_liege_realm_owner = { limit = { <triggers> } <effects> }</pre>
| <pre>every_equipped_character_artifact = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| artifact
|-
|-
| every_neighboring_realm_same_rank_owner
| every_extended_family_member
| A sub-realm or realm bordering the scope character's realm and has the same rank as the scope character (look for lieges of he owner of the land if necessary)
| Iterate through all the extended family [uncles/aunts, nephew/niece, cousins]
| <pre>every_neighboring_realm_same_rank_owner = { limit = { <triggers> } <effects> }</pre>
| <pre>every_extended_family_member = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_neighboring_top_liege_realm
| every_foreign_court_guest
| A realm with a different top liege neighboring the realm of the scope character's top liege; switches to the realm's top title. Can be based on borders a day or two out of date
| Iterate through all guests visiting from another court (in contrast to pool_guest they have a liege)
| <pre>every_neighboring_top_liege_realm = { limit = { <triggers> } <effects> }</pre>
| <pre>every_foreign_court_guest = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| landed title
|-
|-
| every_neighboring_top_liege_realm_owner
| every_former_concubine
| A realm with a different top liege neighboring the realm of the scope character's top liege; switches to the holder of the realm. Can be based on borders a day or two out of date
| Iterate through all former concubines. Not persisted past death
| <pre>every_neighboring_top_liege_realm_owner = { limit = { <triggers> } <effects> }</pre>
| <pre>every_former_concubine = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_opposite_sex_spouse_candidate
| every_former_concubinist
| Iterate through all the spouse candidates of the opposite sex of a character.
| Iterate through all former concubinists. Not persisted past death
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
| <pre>every_former_concubinist = { limit = { <triggers> } <effects> }</pre>
every_opposite_sex_spouse_candidate = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_owned_story
| every_former_spouse
| Iterate through all owned stories for a character
| Iterate through all former spouses
| <pre>every_owned_story = { limit = { <triggers> } <effects> }</pre>
| <pre>every_former_spouse = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| story cycle
|-
|-
| every_parent
| every_general_councillor
| Iterate through all (both) parents
| Iterate through all councillors that are not related to a skill
| <pre>every_parent = { limit = { <triggers> } <effects> }</pre>
| <pre>every_general_councillor = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_patroned_holy_order
| every_heir
| Iterate through all holy orders that the scoped character is a patron of
| Heirs of the scoped character
| <pre>every_patroned_holy_order = { limit = { <triggers> } <effects> }</pre>
| <pre>every_heir = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| holy order
|-
|-
| every_personal_claimed_artifact
| every_heir_title
| Iterate through all personally claimed artifacts of the scoped character
| Iterate through all landed titles character is heir to
| <pre>every_personal_claimed_artifact = { limit = { <triggers> } <effects> }</pre>
| <pre>every_heir_title = { limit = { <triggers> } <effects> }</pre>
| character
| character
| artifact
| landed title
|-
|-
| every_pinned_character
| every_heir_to_title
| Iterate through characters this player has pinned
| Iterate through all titles the scoped character is heir to
| <pre>every_pinned_character = { limit = { <triggers> } <effects> }</pre>
| <pre>every_heir_to_title = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| landed title
|-
|-
| every_pinning_character
| every_held_title
| Iterate through characters whose player has this character pinned
| Iterate through all held landed titles
| <pre>every_pinning_character = { limit = { <triggers> } <effects> }</pre>
| <pre>every_held_title = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| landed title
|-
|-
| every_played_character
| every_hired_mercenary
| Iterate through all characters the player playing this character has played. Matches the game over legacy, except for excluding the currently played character
| Iterate through all hired mercenary companies
| <pre>every_played_character = { limit = { <triggers> } <effects> }</pre>
| <pre>every_hired_mercenary = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| mercenary company
|-
|-
| every_player_heir
| every_hooked_character
| Iterate through player heirs, capped at the first 10
| Iterate through all characters this character has a hook on
| <pre>every_player_heir = { limit = { <triggers> } <effects> }</pre>
| <pre>every_hooked_character = { limit = { <triggers> } <effects> }</pre>
| character
| character
|-
| every_hostile_raider
| Iterate through anyone the character is hostile to due to their top-liege's realm having been raided
| <pre>every_hostile_raider = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_pool_guest
| every_intrigue_councillor
| Iterate through all guests visiting the court from the pool (in contrast to foreign_court_guest they don't have a liege)
| Iterate through all intrigue-based councillors
| <pre>every_pool_guest = { limit = { <triggers> } <effects> }</pre>
| <pre>every_intrigue_councillor = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_potential_marriage_option
| every_knight
| Iterate through all potential selectable marriage or betrohed options
| Iterate through all knights
| <pre>every_potential_marriage_option = { limit = { <triggers> } <effects> }</pre>
| <pre>every_knight = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_pretender_title
| every_known_secret
| Iterate through all landed titles character is pretender to
| Iterate through all secrets known by the character
| <pre>every_pretender_title = { limit = { <triggers> } <effects> }</pre>
| <pre>every_known_secret = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
| secret
|-
|-
| every_primary_war_enemy
| every_learning_councillor
| Iterate through all primary war enemies
| Iterate through all learning-based councillors
| <pre>every_primary_war_enemy = { limit = { <triggers> } <effects> }</pre>
| <pre>every_learning_councillor = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_prisoner
| every_liege_or_above
| Iterate through all prisoners
| Iterate through all lieges above a character (skipping the character themselves)
| <pre>every_prisoner = { limit = { <triggers> } <effects> }</pre>
| <pre>every_liege_or_above = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_prowess_councillor
| every_martial_councillor
| Iterate through all prowess-based councillors
| Iterate through all martial-based councillors
| <pre>every_prowess_councillor = { limit = { <triggers> } <effects> }</pre>
| <pre>every_martial_councillor = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_raid_target
| every_neighboring_and_across_water_realm_same_rank_owner
| Iterate through anyone the character is hostile to due to having raided them. Only returns top lieges
| A sub-realm or realm bordering the scope character's realm (including across water) and has the same rank as the scope character (look for lieges of he owner of the land if necessary)
| <pre>every_raid_target = { limit = { <triggers> } <effects> }</pre>
| <pre>every_neighboring_and_across_water_realm_same_rank_owner = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_realm_county
| every_neighboring_and_across_water_top_liege_realm
| Iterate through all counties in the realm. Based on top liege
| A realm with a different top liege neighboring the realm of the scope character's top liege (including across water); switches to the realm's top title. Can be based on borders a day or two out of date
| <pre>
| <pre>every_neighboring_and_across_water_top_liege_realm = { limit = { <triggers> } <effects> }</pre>
every_realm_county = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
| landed title
|-
|-
| every_realm_de_jure_duchy
| every_neighboring_and_across_water_top_liege_realm_owner
| Iterate through all de jure duchies that have at least one county in the realm. Based on top liege
| A realm with a different top liege neighboring the realm of the scope character's top liege (including across water); switches to the holder of the realm. Can be based on borders a day or two out of date
| <pre>
| <pre>every_neighboring_and_across_water_top_liege_realm_owner = { limit = { <triggers> } <effects> }</pre>
every_realm_de_jure_duchy = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| landed title
|-
|-
| every_realm_de_jure_empire
| every_neighboring_realm_same_rank_owner
| Iterate through all de jure empire that have at least one county in the realm. Based on top liege
| A sub-realm or realm bordering the scope character's realm and has the same rank as the scope character (look for lieges of he owner of the land if necessary)
| <pre>
| <pre>every_neighboring_realm_same_rank_owner = { limit = { <triggers> } <effects> }</pre>
every_realm_de_jure_empire = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| landed title
|-
|-
| every_realm_de_jure_kingdom
| every_neighboring_top_liege_realm
| Iterate through all de jure kingdom that have at least one county in the realm. Based on top liege
| A realm with a different top liege neighboring the realm of the scope character's top liege; switches to the realm's top title. Can be based on borders a day or two out of date
| <pre>
| <pre>every_neighboring_top_liege_realm = { limit = { <triggers> } <effects> }</pre>
every_realm_de_jure_kingdom = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
| landed title
|-
|-
| every_realm_province
| every_neighboring_top_liege_realm_owner
| Iterate through all realm provinces of a character
| A realm with a different top liege neighboring the realm of the scope character's top liege; switches to the holder of the realm. Can be based on borders a day or two out of date
| <pre>every_realm_province = { limit = { <triggers> } <effects> }</pre>
| <pre>every_neighboring_top_liege_realm_owner = { limit = { <triggers> } <effects> }</pre>
| character
| province
|-
| every_relation
| Iterate through scripted relations of a given type or multiple types, if someone is multiple relations they will only be in the list once
| <pre>every_relation = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_same_sex_spouse_candidate
| every_opposite_sex_spouse_candidate
| Iterate through all the spouse candidates of the same sex of a character.
| Iterate through all the spouse candidates of the opposite sex of a character.
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
every_same_sex_spouse_candidate = { limit = { <triggers> } <effects> }</pre>
every_opposite_sex_spouse_candidate = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_scheme
| every_owned_story
| Iterate through all schemes owned by the character
| Iterate through all owned stories for a character
| <pre>every_scheme = { limit = { <triggers> } <effects> }</pre>
| <pre>every_owned_story = { limit = { <triggers> } <effects> }</pre>
| character
| character
| scheme
| story cycle
|-
|-
| every_secret
| every_parent
| Iterate through all secrets of the character
| Iterate through all (both) parents
| <pre>every_secret = { limit = { <triggers> } <effects> }</pre>
| <pre>every_parent = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| secret
|-
|-
| every_sibling
| every_patroned_holy_order
| Iterate through all siblings
| Iterate through all holy orders that the scoped character is a patron of
| <pre>every_sibling = { limit = { <triggers> } <effects> }</pre>
| <pre>every_patroned_holy_order = { limit = { <triggers> } <effects> }</pre>
| character
| character
| holy order
|-
| every_personal_claimed_artifact
| Iterate through all personally claimed artifacts of the scoped character
| <pre>every_personal_claimed_artifact = { limit = { <triggers> } <effects> }</pre>
| character
| character
| artifact
|-
|-
| every_sponsored_inspiration
| every_pinned_character
| Iterate through all sponsored inspirations
| Iterate through characters this player has pinned
| <pre>every_sponsored_inspiration = { limit = { <triggers> } <effects> }</pre>
| <pre>every_pinned_character = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| inspiration
|-
|-
| every_spouse
| every_pinning_character
| Iterate through all spouses
| Iterate through characters whose player has this character pinned
| <pre>every_spouse = { limit = { <triggers> } <effects> }</pre>
| <pre>every_pinning_character = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_spouse_candidate
| every_played_character
| Iterate through all the spouse candidates of a character.
| Iterate through all characters the player playing this character has played. Matches the game over legacy, except for excluding the currently played character
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
| <pre>every_played_character = { limit = { <triggers> } <effects> }</pre>
every_spouse_candidate = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_stewardship_councillor
| every_player_heir
| Iterate through all stewardship-based councillors
| Iterate through player heirs, capped at the first 10
| <pre>every_stewardship_councillor = { limit = { <triggers> } <effects> }</pre>
| <pre>every_player_heir = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_sub_realm_barony
| every_pool_guest
| Iterate through all baronies in sub-realm
| Iterate through all guests visiting the court from the pool (in contrast to foreign_court_guest they don't have a liege)
| <pre>every_sub_realm_barony = { limit = { <triggers> } <effects> }</pre>
| <pre>every_pool_guest = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
| every_sub_realm_county
| Iterate through all counties in sub-realm
| <pre>every_sub_realm_county = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
|-
| every_sub_realm_duchy
| every_potential_marriage_option
| Iterate through all duchies in sub-realm
| Iterate through all potential selectable marriage or betrohed options
| <pre>every_sub_realm_duchy = { limit = { <triggers> } <effects> }</pre>
| <pre>every_potential_marriage_option = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
| every_sub_realm_empire
| Iterate through all empires in sub-realm
| <pre>every_sub_realm_empire = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
|-
| every_sub_realm_kingdom
| every_pretender_title
| Iterate through all kingdoms in sub-realm
| Iterate through all landed titles character is pretender to
| <pre>every_sub_realm_kingdom = { limit = { <triggers> } <effects> }</pre>
| <pre>every_pretender_title = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
| landed title
|-
|-
| every_sub_realm_title
| every_primary_war_enemy
| Iterate through all titles in sub-realm
| Iterate through all primary war enemies
| <pre>every_sub_realm_title = { limit = { <triggers> } <effects> }</pre>
| <pre>every_primary_war_enemy = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
| every_targeting_faction
| Iterate through all factions targeting the scope character
| <pre>every_targeting_faction = { limit = { <triggers> } <effects> }</pre>
| character
| character
| faction
|-
|-
| every_targeting_scheme
| every_prisoner
| Iterate through all schemes targeting the character
| Iterate through all prisoners
| <pre>every_targeting_scheme = { limit = { <triggers> } <effects> }</pre>
| <pre>every_prisoner = { limit = { <triggers> } <effects> }</pre>
| character
| character
| scheme
|-
| every_targeting_secret
| Iterate through all secrets that target the specified scope
| <pre>every_targeting_secret = { limit = { <triggers> } <effects> }</pre>
| character
| character
| secret
|-
|-
| every_traveling_family_member
| every_prowess_councillor
| Iterate though all characters that should travel with the scoped one (when moving between courts for instance); includes the scoped character
| Iterate through all prowess-based councillors
| <pre>every_traveling_family_member = { limit = { <triggers> } <effects> }</pre>
| <pre>every_prowess_councillor = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_truce_holder
| every_raid_target
| Iterate through all characters that have a truce on this character
| Iterate through anyone the character is hostile to due to having raided them. Only returns top lieges
| <pre>every_truce_holder = { limit = { <triggers> } <effects> }</pre>
| <pre>every_raid_target = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_truce_target
| every_realm_county
| Iterate through all characters this character has a truce on
| Iterate through all counties in the realm. Based on top liege
| <pre>every_truce_target = { limit = { <triggers> } <effects> }</pre>
| <pre>
every_realm_county = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
| every_realm_de_jure_duchy
| Iterate through all de jure duchies that have at least one county in the realm. Based on top liege
| <pre>
every_realm_de_jure_duchy = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
|-
| every_unspent_known_secret
| every_realm_de_jure_empire
| Iterate through all unspent secrets known by the character
| Iterate through all de jure empire that have at least one county in the realm. Based on top liege
| <pre>every_unspent_known_secret = { limit = { <triggers> } <effects> }</pre>
| <pre>
every_realm_de_jure_empire = { limit = { <triggers> } <effects> }</pre>
| character
| character
| secret
| landed title
|-
|-
| every_vassal
| every_realm_de_jure_kingdom
| Iterate through all DIRECT vassals
| Iterate through all de jure kingdom that have at least one county in the realm. Based on top liege
| <pre>every_vassal = { limit = { <triggers> } <effects> }</pre>
| <pre>
every_realm_de_jure_kingdom = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
| every_realm_province
| Iterate through all realm provinces of a character
| <pre>every_realm_province = { limit = { <triggers> } <effects> }</pre>
| character
| character
| province
|-
|-
| every_vassal_or_below
| every_relation
| Iterate through ALL vassals, not just direct vassals
| Iterate through scripted relations of a given type or multiple types, if someone is multiple relations they will only be in the list once
| <pre>every_vassal_or_below = { limit = { <triggers> } <effects> }</pre>
| <pre>every_relation = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_war_ally
| every_same_sex_spouse_candidate
| Iterate through all direct war allies
| Iterate through all the spouse candidates of the same sex of a character.
| <pre>every_war_ally = { limit = { <triggers> } <effects> }</pre>
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
every_same_sex_spouse_candidate = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| every_war_enemy
| every_scheme
| Iterate through all direct war enemies
| Iterate through all schemes owned by the character
| <pre>every_war_enemy = { limit = { <triggers> } <effects> }</pre>
| <pre>every_scheme = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| scheme
|-
|-
| execute_decision
| every_secret
| Execute the specified decision for the scoped character
| Iterate through all secrets of the character
| <pre></pre>
| <pre>every_secret = { limit = { <triggers> } <effects> }</pre>
| character
| secret
|-
| every_sibling
| Iterate through all siblings
| <pre>every_sibling = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
|
|-
|-
| finish_council_task
| every_sponsored_inspiration
| The councillor finish the current assigned task successfully.
| Iterate through all sponsored inspirations
| <pre></pre>
| <pre>every_sponsored_inspiration = { limit = { <triggers> } <effects> }</pre>
| character
| character
| inspiration
|-
|-
| fire_councillor
| every_spouse
| The scope character fires the target character form teh council.
| Iterate through all spouses
| <pre></pre>
| <pre>every_spouse = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| forbid_from_scheme
| every_spouse_candidate
| Forbid the scope character from joining the target scheme as an agent (and kick the character out if already in the scheme)
| Iterate through all the spouse candidates of a character.
| <pre></pre>
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
every_spouse_candidate = { limit = { <triggers> } <effects> }</pre>
| character
| character
| scheme
|-
| force_add_to_scheme
| Adds a character as an agent to the scheme and forces them to stay
| <pre>{
   scheme = target_Scheme
   days/months/years = duration
}</pre>
| character
| character
|
|-
|-
| force_character_skill_recalculation
| every_stewardship_councillor
| Forces a character's skills to be recalculated immediately, bypassing the wait for the daily tick.
| Iterate through all stewardship-based councillors
| <pre>NOTE: Only use this when *absolutely* necessary, as it will impact performance negatively if misused
| <pre>every_stewardship_councillor = { limit = { <triggers> } <effects> }</pre>
  Usage: force_character_skill_recalculation = yes/no</pre>
| character
| character
|
|-
| force_vote_as
| Forces the character to vote the same as the target
| <pre>force_vote_as = { target = someone days/months/years = x }</pre>
| character
| character
|
|-
|-
| get_title
| every_sub_realm_barony
| gives a title to a character
| Iterate through all baronies in sub-realm
| <pre></pre>
| <pre>every_sub_realm_barony = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
| landed title
|-
|-
| give_nickname
| every_sub_realm_county
| Give a nickname to this character
| Iterate through all counties in sub-realm
| <pre></pre>
| <pre>every_sub_realm_county = { limit = { <triggers> } <effects> }</pre>
| character
| landed title
|-
| every_sub_realm_duchy
| Iterate through all duchies in sub-realm
| <pre>every_sub_realm_duchy = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
|-
| imprison
| every_sub_realm_empire
| Imprisons the target character as this character's prisoner, imprison = { target = X reason = Y type = Z }, where X is a character, Y is a flag, Z is a static modifier
| Iterate through all empires in sub-realm
| <pre></pre>
| <pre>every_sub_realm_empire = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
|-
|-
| join_faction
| every_sub_realm_kingdom
| the character in the scope joins the assigned faction
| Iterate through all kingdoms in sub-realm
| <pre></pre>
| <pre>every_sub_realm_kingdom = { limit = { <triggers> } <effects> }</pre>
| character
| character
| faction
| landed title
|-
|-
| join_faction_forced
| every_sub_realm_title
| the character in the scope is forced to join a faction by a character for a defined time,
| Iterate through all titles in sub-realm
| <pre>join_faction_forced = {
| <pre>every_sub_realm_title = { limit = { <triggers> } <effects> }</pre>
   faction = X
   forced_by = Y
   days/months/years = duration
}</pre>
| character
| character
| landed title
|-
|-
| join_faction_skip_check
| every_targeting_faction
| the character in the scope joins the assigned faction skiping the can_character_join trigger
| Iterate through all factions targeting the scope character
| <pre></pre>
| <pre>every_targeting_faction = { limit = { <triggers> } <effects> }</pre>
| character
| character
| faction
| faction
|-
|-
| learn_court_language_of
| every_targeting_scheme
| The character learns the court language of the target characterlearn_court_language_of = scope:target_character
| Iterate through all schemes targeting the character
| <pre></pre>
| <pre>every_targeting_scheme = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| scheme
|-
|-
| learn_language
| every_targeting_secret
| The character learns the languagelearn_language = language_norwegian
| Iterate through all secrets that target the specified scope
| <pre></pre>
| <pre>every_targeting_secret = { limit = { <triggers> } <effects> }</pre>
| character
| character
| secret
|-
|-
| learn_language_of_culture
| every_traveling_family_member
| The character learns the language of the target culturelearn_language_of_culture = scope:target_culture
| Iterate though all characters that should travel with the scoped one (when moving between courts for instance); includes the scoped character
| <pre></pre>
| <pre>every_traveling_family_member = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| culture
|-
|-
| leave_faction
| every_truce_holder
| the charcter in the scope leaves the assigned faction
| Iterate through all characters that have a truce on this character
| <pre></pre>
| <pre>every_truce_holder = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| faction
|-
|-
| make_claim_strong
| every_truce_target
| makes a claim strong (character adds the claim if not having it already)
| Iterate through all characters this character has a truce on
| <pre></pre>
| <pre>every_truce_target = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| landed title
|-
|-
| make_claim_weak
| every_unspent_known_secret
| makes a claim weak (character adds the claim if not having it already)
| Iterate through all unspent secrets known by the character
| <pre></pre>
| <pre>every_unspent_known_secret = { limit = { <triggers> } <effects> }</pre>
| character
| character
| landed title
| secret
|-
|-
| make_concubine
| every_vassal
| Makes the target character a concubine of the scope character, the target should not be imprisoned
| Iterate through all DIRECT vassals
| <pre></pre>
| <pre>every_vassal = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
| character
|-
|-
| make_pregnant
| every_vassal_or_below
| makes a character pregnant
| Iterate through ALL vassals, not just direct vassals
| <pre> father= 'the real father'
| <pre>every_vassal_or_below = { limit = { <triggers> } <effects> }</pre>
number_of_children= X
| character
known_bastard=yes/no</pre>
| character
| character
|
|-
|-
| make_pregnant_no_checks
| every_war_ally
| makes a character pregnant. Doesn't error on things like celibacy
| Iterate through all direct war allies
| <pre> father= 'the real father'
| <pre>every_war_ally = { limit = { <triggers> } <effects> }</pre>
number_of_children= X
| character
known_bastard=yes/no</pre>
| character
|-
| every_war_enemy
| Iterate through all direct war enemies
| <pre>every_war_enemy = { limit = { <triggers> } <effects> }</pre>
| character
| character
| character
|
|-
|-
| make_trait_active
| execute_decision
| Activates an inactive trait. Tooltip will not be shown if the character cannot have the trait.
| Execute the specified decision for the scoped character
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| make_trait_active_force_tooltip
| finish_council_task
| Activates an inactive trait. Tooltip will be shown even if the character cannot have the trait.
| The councillor finish the current assigned task successfully.
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| make_trait_inactive
| fire_councillor
| Makes a current trait of a character inactive. Tooltip will not be shown if the character doesn't have the trait.
| The scope character fires the target character form teh council.
| <pre></pre>
| <pre></pre>
| character
| character
| character
|-
|-
| make_trait_inactive_force_tooltip
| forbid_from_scheme
| Makes a current trait of a character inactive. Tooltip will be shown even if the character doesn't have the trait.
| Forbid the scope character from joining the target scheme as an agent (and kick the character out if already in the scheme)
| <pre></pre>
| <pre></pre>
| character
| character
| scheme
|-
|-
| make_unprunable
| force_add_to_scheme
| The scope character will no longer be prunable after their death. Use with care, as this will make everyone related to them unprunable too. So you should only use this if someone absolutely *needs* to stick around several years after their death. Example: make_unprunable = yes
| Adds a character as an agent to the scheme and forces them to stay
| <pre></pre>
| <pre>{
   scheme = target_Scheme
   days/months/years = duration
}</pre>
| character
| character
|-
|-
| marry
| force_character_skill_recalculation
| Marries the scoped character to the target character.
| Forces a character's skills to be recalculated immediately, bypassing the wait for the daily tick.
| <pre>marry = target</pre>
| <pre>NOTE: Only use this when *absolutely* necessary, as it will impact performance negatively if misused
| character
  Usage: force_character_skill_recalculation = yes/no</pre>
| character
| character
|
|-
|-
| marry_matrilineal
| force_vote_as
| Marries the scoped character to the target character matrilineally.
| Forces the character to vote the same as the target
| <pre>marry_matrilineal = target</pre>
| <pre>force_vote_as = { target = someone days/months/years = x }</pre>
| character
| character
| character
|
|-
|-
| move_to_pool
| get_title
| The scoped character (courtier or guest) leaves their current court and moves into the pool
| gives a title to a character
| <pre>scope:guest = { move_to_pool = yes }</pre>
| <pre></pre>
| character
| character
| landed title
|-
|-
| move_to_pool_at
| give_nickname
| The scoped character (courtier/guest/pool character) leaves their current court (if any) and moves into the pool of the specified province
| Give a nickname to this character
| <pre>scope:guest = { move_to_pool_at = scope:some_province }</pre>
| <pre></pre>
| character
| character
| province
|-
|-
| open_appoint_court_position_window
| imprison
| Opens the appointment window for the specified court position with scoped character as liege
| Imprisons the target character as this character's prisoner, imprison = { target = X reason = Y type = Z }, where X is a character, Y is a flag, Z is a static modifier
| <pre></pre>
| <pre></pre>
| character
| character
|-
|-
| ordered_alert_creatable_title
| join_faction
| Iterate through all titles that can be created by the character. (only for alerts)
| the character in the scope joins the assigned faction
| <pre>ordered_alert_creatable_title = {
| <pre></pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| character
| landed title
| faction
|-
|-
| ordered_alert_usurpable_title
| join_faction_forced
| Iterate through all titles that can be usurped by the character. (only for alerts)
| the character in the scope is forced to join a faction by a character for a defined time,
| <pre>ordered_alert_usurpable_title = {
| <pre>join_faction_forced = {
limit = { <triggers> }
   faction = X
order_by = script_value
   forced_by = Y
position = int
   days/months/years = duration
min = int
}</pre>
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| character
| landed title
|-
|-
| ordered_ally
| join_faction_skip_check
| Iterate through all allies
| the character in the scope joins the assigned faction skiping the can_character_join trigger
| <pre>ordered_ally = {
| <pre></pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| character
| character
| faction
|-
|-
| ordered_ancestor
| learn_court_language_of
| Iterate through all the ancestors of the scope character up to 5 generations
| The character learns the court language of the target characterlearn_court_language_of = scope:target_character
| <pre>ordered_ancestor = {
| <pre></pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| character
| character
| character
|-
|-
| ordered_army
| learn_language
| Iterate through all armies
| The character learns the languagelearn_language = language_norwegian
| <pre>ordered_army = {
| <pre></pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| character
| army
|-
|-
| ordered_character_artifact
| learn_language_of_culture
| Iterate through all artifacts in a given characters inventory
| The character learns the language of the target culturelearn_language_of_culture = scope:target_culture
| <pre>ordered_character_artifact = {
| <pre></pre>
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| character
| artifact
| culture
|-
|-
| ordered_character_to_title_neighboring_and_across_water_county
| leave_faction
| Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
| the charcter in the scope leaves the assigned faction
| <pre>ordered_character_to_title_neighboring_and_across_water_county = {
| <pre></pre>
limit = { <triggers> }
| character
order_by = script_value
| faction
position = int
|-
min = int
| make_claim_strong
max = script_value
| makes a claim strong (character adds the claim if not having it already)
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre></pre>
<effects> }</pre>
| character
| character
| landed title
| landed title
|-
|-
| make_claim_weak
| ordered_character_to_title_neighboring_and_across_water_duchy
| makes a claim weak (character adds the claim if not having it already)
| Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| <pre></pre>
| <pre>ordered_character_to_title_neighboring_and_across_water_duchy = {
| character
limit = { <triggers> }
| landed title
order_by = script_value
|-
position = int
| make_concubine
min = int
| Makes the target character a concubine of the scope character, the target should not be imprisoned
max = script_value
| <pre></pre>
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| character
<effects> }</pre>
| character
| character
|-
| landed title
| make_pregnant
|-
| makes a character pregnant
| ordered_character_to_title_neighboring_and_across_water_empire
| <pre> father= 'the real father'
| Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
number_of_children= X
| <pre>ordered_character_to_title_neighboring_and_across_water_empire = {
known_bastard=yes/no</pre>
limit = { <triggers> }
| character
order_by = script_value
|
|-
| make_pregnant_no_checks
| makes a character pregnant. Doesn't error on things like celibacy
| <pre> father= 'the real father'
number_of_children= X
known_bastard=yes/no</pre>
| character
|
|-
| make_trait_active
| Activates an inactive trait. Tooltip will not be shown if the character cannot have the trait.
| <pre></pre>
| character
|
|-
| make_trait_active_force_tooltip
| Activates an inactive trait. Tooltip will be shown even if the character cannot have the trait.
| <pre></pre>
| character
|
|-
| make_trait_inactive
| Makes a current trait of a character inactive. Tooltip will not be shown if the character doesn't have the trait.
| <pre></pre>
| character
|
|-
| make_trait_inactive_force_tooltip
| Makes a current trait of a character inactive. Tooltip will be shown even if the character doesn't have the trait.
| <pre></pre>
| character
|
|-
| make_unprunable
| The scope character will no longer be prunable after their death. Use with care, as this will make everyone related to them unprunable too. So you should only use this if someone absolutely *needs* to stick around several years after their death. Example: make_unprunable = yes
| <pre></pre>
| character
|
|-
| marry
| Marries the scoped character to the target character.
| <pre>marry = target</pre>
| character
| character
|-
| marry_matrilineal
| Marries the scoped character to the target character matrilineally.
| <pre>marry_matrilineal = target</pre>
| character
| character
|-
| move_to_pool
| The scoped character (courtier or guest) leaves their current court and moves into the pool
| <pre>scope:guest = { move_to_pool = yes }</pre>
| character
|
|-
| move_to_pool_at
| The scoped character (courtier/guest/pool character) leaves their current court (if any) and moves into the pool of the specified province
| <pre>scope:guest = { move_to_pool_at = scope:some_province }</pre>
| character
| province
|-
| open_appoint_court_position_window
| Opens the appointment window for the specified court position with scoped character as liege
| <pre></pre>
| character
|
|-
| ordered_alert_creatable_title
| Iterate through all titles that can be created by the character. (only for alerts)
| <pre>ordered_alert_creatable_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| landed title
|-
| ordered_alert_usurpable_title
| Iterate through all titles that can be usurped by the character. (only for alerts)
| <pre>ordered_alert_usurpable_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| landed title
|-
| ordered_ally
| Iterate through all allies
| <pre>ordered_ally = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| character
|-
| ordered_ancestor
| Iterate through all the ancestors of the scope character up to 5 generations
| <pre>ordered_ancestor = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| character
|-
| ordered_army
| Iterate through all armies
| <pre>ordered_army = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| army
|-
| ordered_character_artifact
| Iterate through all artifacts in a given characters inventory
| <pre>ordered_character_artifact = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| artifact
|-
| ordered_character_struggle
| Iterate through all struggles that character is involved in.
| <pre>ordered_character_struggle = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
Optional: Narrow down the involvement status *_character_struggle = { involvement = involved | interloper } </pre>
| character
| struggle
|-
| ordered_character_to_title_neighboring_and_across_water_county
| Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
| <pre>ordered_character_to_title_neighboring_and_across_water_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| landed title
|-
| ordered_character_to_title_neighboring_and_across_water_duchy
| Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| <pre>ordered_character_to_title_neighboring_and_across_water_duchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }</pre>
| character
| landed title
|-
| ordered_character_to_title_neighboring_and_across_water_empire
| Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| <pre>ordered_character_to_title_neighboring_and_across_water_empire = {
limit = { <triggers> }
order_by = script_value
position = int
position = int
min = int
min = int
第6,955行: 第7,445行:
| character
| character
| artifact
| artifact
|-
| random_character_struggle
| Iterate through all struggles that character is involved in.
| <pre>random_character_struggle = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
Optional: Narrow down the involvement status *_character_struggle = { involvement = involved | interloper }</pre>
| character
| struggle
|-
|-
| random_character_to_title_neighboring_and_across_water_county
| random_character_to_title_neighboring_and_across_water_county
第7,894行: 第8,391行:
| Recalculates the line of succession of the scoped character
| Recalculates the line of succession of the scoped character
| <pre></pre>
| <pre></pre>
| character
|
|-
| send_interface_message
| Sends a message to the player playing the character in the scope and then executes any effects inside.
| <pre>For the message text and tooltip, $EFFECT$ contains the text description of the effects in the past tense.
And $DESC$ contains the text from the desc field.
send_interface_message = {
type = message_type # default: send_interface_message
title = LOCALIZATION # optional, otherwise takes it from the message type
desc = LOCALIZATION # optional, otherwise takes it from the message type
tooltip = LOCALIZATION # optional, otherwise takes it from the message type
left_icon = scope:recipient # optional, character, artifact, or title
right_icon = scope:the_title # optional, character, artifact, or title
goto = scope:the_title # optional, character, barony title, province will add a goto button
# optional effects...
add_dread = 5
scope:someone = { add_gold = 5 }
}</pre>
| character
|
|-
| send_interface_toast
| Sends a message to the player playing the character in the scope and then executes any effects inside.
| <pre>For the message text and tooltip, $EFFECT$ contains the text description of the effects in the past tense.
And $DESC$ contains the text from the desc field.
send_interface_toast = {
type = message_type # default: send_interface_toast
title = LOCALIZATION # optional, otherwise takes it from the message type
desc = LOCALIZATION # optional, otherwise takes it from the message type
tooltip = LOCALIZATION # optional, otherwise takes it from the message type
left_icon = scope:recipient # optional, character, artifact, or title
right_icon = scope:the_title # optional, character, artifact, or title
goto = scope:the_title # optional, character, barony title, province will add a goto button
# optional effects...
add_dread = 5
scope:someone = { add_gold = 5 }
}</pre>
| character
| character
第8,429行: 第8,886行:
| faith
| faith
|}
|}
== Opinion Modifiers ==
In order to add an opinion modifier, a modifier must be defined inside a file under <code>common/opinion_modifiers</code>. A constant modifier looks like this:
<pre>
custom_opinion_modifier_name = {
   opinion = 20
   imprisonment_reason = yes
   revoke_title_reason = yes
   banish_reason = yes
   execute_reason = yes
}
</pre>
While a modifier that changes over time looks like this:
<pre>
custom_opinion_modifier_name = {
   monthly_change = -.05
   decaying = yes
   max = 20
   stacking = yes
}
</pre>
Other valid keys can be found by example in <code>game/common/opinion_modifiers</code>.
You will also want to add an entry to a localization file with the same name as the opinion modifier. This will show up as the description when an in-game tooltip is shown.


{{Modding navbox}}
{{Modding navbox}}
[[Category:Modding]]
[[Category:Modding]]

2022年12月4日 (日) 22:54的版本

Effects, also known as commands, are used in scripting to alter the target that was selected via scopes and conditions. They are also able to iterate through lists.

They appear in:

  • command blocks (the immediate and option sections of events, or similar: effect, creation_effect, gain_effect, success, ...)
  • scripted effects, which can reduce code duplication by grouping commands into re-usable macro.

Scripting commands are different from console commands, though there may be equivalents between the two. Also, any effect can be run in the console via the effect command.

Available effects depend on the current scope.

Control effects

These are the most important effects that are used to control the execution of other effects.

Name Description Usage Supported scopes Supported targets
if Executes enclosed effects if limit criteria are met
if = { limit = { <triggers> } <effects> }
none
else_if Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met, and its own limit is met
if = { limit = { <triggers> } <effects> }
else_if = { limit = { <triggers> } <effects> }
none
else Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met
if = { limit = { <triggers> } <effects> }
else = { <effects> }
none
while Repeats enclosed effects while limit criteria are met or until set iteration count is reached
while = {
    limit = { <triggers> }
    <effects>
}
while = { count = 3 <effects> }
Default max of 1000.
none
switch Switch on a trigger for the evaluation of another trigger with an optional fallback trigger.
switch = {
	trigger = simple_assign_trigger
	case_1 = { <effects> }
	case_2 = { <effects> }
	case_n = { <effects> }
	fallback = { <effects> }
}
none
hidden_effect Effect not shown in tooltips
hidden_effect = { <effects> }
none
show_as_tooltip Effect only shown in tooltips (but not executed)

none
random a random effect
random = { chance = X modifier = Y effects... }
where X is a chance of the enclosed effects being fired and can be modified by optional value modifier list (AKA MTTH) Y
none
random_list a random list effect
random_list = {
    X1 = {
        trigger = { ... }
        modifier/compare_modifier/opinion_modifier = Y1
        effect1
    }
    X2 = { ... }
    ...
}
Selects one effect from the list and fires it. The effects are weighted by numbers X1, X2... (the higher the number, the higher the chance of the effect being picked).
The chances can be modified by optional value modifier lists Y1, Y2... (AKA MTTH)
none
custom_description Wraps effects that get a custom description instead of the auto-generated one. See also custom_description_no_bullet.
custom_description = {
	text = <effect_localization_key>
	subject = <optional subject scope> #defaults to current scope
	object = <optional object scope>
	value = <optional script value>
	... effects ...
}
none
custom_tooltip just a tooltip, the scope as subject (for grouping, localization).
custom_tooltip = { text = key subject = scope (optional) <hidden effects> }
or just custom_tooltip = key
none
send_interface_message Sends a message to the player playing the character in the scope and then executes any effects inside.
For the message text and tooltip, $EFFECT$ contains the text description of the effects in the past tense.
And $DESC$ contains the text from the desc field.
send_interface_message = {
	type = message_type # default: send_interface_message
	title = LOCALIZATION # optional, otherwise takes it from the message type
	desc = LOCALIZATION # optional, otherwise takes it from the message type
	tooltip = LOCALIZATION # optional, otherwise takes it from the message type
	left_icon = scope:recipient # optional, character, artifact, or title
	right_icon = scope:the_title # optional, character, artifact, or title
	goto = scope:the_title # optional, character, barony title, province will add a goto button
		
	# optional effects...
	add_dread = 5
	scope:someone = { add_gold = 5 }
}
character
send_interface_toast Sends a message to the player playing the character in the scope and then executes any effects inside.
For the message text and tooltip, $EFFECT$ contains the text description of the effects in the past tense.
And $DESC$ contains the text from the desc field.
send_interface_toast = {
	type = message_type # default: send_interface_toast
	title = LOCALIZATION # optional, otherwise takes it from the message type
	desc = LOCALIZATION # optional, otherwise takes it from the message type
	tooltip = LOCALIZATION # optional, otherwise takes it from the message type
	left_icon = scope:recipient # optional, character, artifact, or title
	right_icon = scope:the_title # optional, character, artifact, or title
	goto = scope:the_title # optional, character, barony title, province will add a goto button
		
	# optional effects...
	add_dread = 5
	scope:someone = { add_gold = 5 }
}
character

Dump Export

Current effects can be found in an effects.log file in your local data folder's script_documentation (defaults to "%USERPROFILE%\Documents\Paradox Interactive\Crusader Kings III\logs\"), after you have run the script_docs command in the debug console.

Name Desc Example Scopes Target
add_long_term_gold Add gold to 'long term' AI budget category, respecting maximums, overflow goes into Short Term budget. (gold will be created out of nowhere)
add_long_term_gold = X
character
add_reserved_gold Add gold to 'reserved' AI budget category, respecting maximums, overflow goes into Short Term budget. (gold will be created out of nowhere)
add_reserved_gold = X
character
add_short_term_gold Add gold to 'short term' AI budget category, respecting maximums, overflow goes into Short Term budget. (gold will be created out of nowhere)
add_short_term_gold = X
character
add_war_chest_gold Add gold to 'war chest' AI budget category, respecting maximums, overflow goes into Short Term budget. (gold will be created out of nowhere)
add_war_chest_gold = X
character
pay_reserved_gold the scope character pays gold to the target character (from AI budget category 'reserved' first, then rest)
pay_reserved_gold = { target = X gold = Y }
character
pay_reserved_income the scope character immediately pays gold corresponding to their income to the target character (AI budget 'reserved' first, then rest)
pay_reserved_income = { target = X days/months/years = Y }
character
pay_war_chest_gold the scope character pays gold to the target character (from AI budget category 'war_chest' first, then rest)
pay_war_chest_gold = { target = X gold = Y }
character
pay_war_chest_income the scope character immediately pays gold corresponding to their income to the target character (AI budget 'war_chest' first, then rest)
pay_war_chest_income = { target = X days/months/years = Y }
character
remove_reserved_gold removes gold from a character (from AI's 'reserved' budget first, then rest) character
remove_war_chest_gold removes gold from a character (from AI's 'war chest' budget first, then rest) character
create_character_memory Creates a memory for the character of a given type and participants plus an optional duration. Saved as scope:new_memory.
create_character_memory = { type = memory_type participants = { tag = scope } duration = { years = 3 } }
character
destroy_character_memory Destroys the targeted character memory, do not use the destroyed scope after calling this since it will have been removed
destroy_character_memory = character_memory
none character memory
equip_artifact_to_owner Makes the owner of the scoped artifact equip it, will fail if there already is an equipment in the artifact's slot. artifact
equip_artifact_to_owner_replace Makes the owner of the scoped artifact equip it, will replace the first held artifact if all slots of its type are filled. artifact
unequip_artifact_from_owner Makes the owner of the scoped artifact unequip it. artifact
add_house_artifact_claim Adds a claim on the target artifact to the scoped house

dynasty house artifact
every_memory Iterate through all memories of a character
every_memory = { limit = { <triggers> } <effects> }
character character memory
every_memory_participant Iterate through all participating character of a memory
every_memory_participant = { limit = { <triggers> } <effects> }
character memory character
every_powerful_vassal Iterate through the all powerful vassals of a character
every_powerful_vassal = { limit = { <triggers> } <effects> }
character character
move_budget_gold Move gold from one AI budget category to the other, will not move more than is available in the source budget or what can fit in the target budget
move_budget_gold = { gold = X from = Z to = Y }
('budget_war_chest', 'budget_reserved', 'budget_short_term', 'budget_long_term')
character
set_reserved_gold_maximum Set the maximum (and also desired value) for the 'reserved' gold AI budget. This budget is saved up, even before the war chest budget. It will not correct the current gold in that budget to conform to the new maximum.
set_reserved_gold_maximum = X
character
ordered_memory Iterate through all memories of a character
ordered_memory = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character memory
ordered_memory_participant Iterate through all participating character of a memory
ordered_memory_participant = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character memory character
ordered_powerful_vassal Iterate through the all powerful vassals of a character
ordered_powerful_vassal = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
random_memory Iterate through all memories of a character
random_memory = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character memory
random_memory_participant Iterate through all participating character of a memory
random_memory_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character memory character
random_powerful_vassal Iterate through the all powerful vassals of a character
random_powerful_vassal = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
set_house_name_from_dynasty Sets dynasty house name from another dynasty's name
set_house_name_from_dynasty = dynasty
dynasty house dynasty
set_house_name_from_house Sets dynasty house name from another dynasty house's name
set_house_name_from_house = house
dynasty house dynasty house
add_house_modifier Add a modifier to a house
add_house_modifier = name
add_house_modifier = { modifier = name days/weeks/months/years = int }
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier
dynasty house
every_house_claimed_artifact Iterate through all claimed artifacts of the scoped house
every_house_claimed_artifact = { limit = { <triggers> } <effects> }
dynasty house artifact
every_house_member Iterate through all house members
every_house_member = { limit = { <triggers> } <effects> }
dynasty house character
ordered_house_claimed_artifact Iterate through all claimed artifacts of the scoped house
ordered_house_claimed_artifact = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
dynasty house artifact
ordered_house_member Iterate through all house members
ordered_house_member = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
dynasty house character
random_house_claimed_artifact Iterate through all claimed artifacts of the scoped house
random_house_claimed_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
dynasty house artifact
random_house_member Iterate through all house members
random_house_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
dynasty house character
remove_all_house_modifier_instances Remove all instances of a modifier from a house
remove_all_house_modifier_instances = name
dynasty house
remove_house_artifact_claim Removes a claim on the target artifact from the scoped house

dynasty house artifact
remove_house_modifier Remove a modifier from a house
remove_house_modifier = name
dynasty house
set_house_name Sets dynasty house name
set_house_name=loc_key
dynasty house
add_faction_discontent add_faction_discontent = X adds (or subtracts) discontent to the scope faction

faction
destroy_faction no]

faction
every_faction_county_member Iterate through all faction county members
every_faction_county_member = { limit = { <triggers> } <effects> }
faction landed title
every_faction_member Iterate through all faction character members
every_faction_member = { limit = { <triggers> } <effects> }
faction character
faction_remove_war Removes the war currently associated with the faction
faction_remove_war = yes
faction
faction_start_war The scope faction starts the war agains their target.
faction_start_war = {
    title = [optional]
}
faction
ordered_faction_county_member Iterate through all faction county members
ordered_faction_county_member = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
faction landed title
ordered_faction_member Iterate through all faction character members
ordered_faction_member = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
faction character
random_faction_county_member Iterate through all faction county members
random_faction_county_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
faction landed title
random_faction_member Iterate through all faction character members
random_faction_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
faction character
remove_special_character Removes the special character for the scope faction

faction
remove_special_title Removes the special character for the scope faction

faction
set_special_character Sets the special character for the scope faction

faction character
set_special_title Sets the special title for the scope faction

faction landed title
add_attacker adds the target character to the scope war as an attacker

war character
add_defender adds the target character to the scope war as a defender

war character
clear_claimant Removes the claimant from a war

war
end_war ends the war with the specified winner, end_war = attacker/defender/white_peace

war
every_war_attacker Iterate through all attackers in the war
every_war_attacker = { limit = { <triggers> } <effects> }
war character
every_war_defender Iterate through all defenders in the war
every_war_defender = { limit = { <triggers> } <effects> }
war character
every_war_participant Iterate through all participants in the war
every_war_participant = { limit = { <triggers> } <effects> }
war character
ordered_war_attacker Iterate through all attackers in the war
ordered_war_attacker = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
war character
ordered_war_defender Iterate through all defenders in the war
ordered_war_defender = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
war character
ordered_war_participant Iterate through all participants in the war
ordered_war_participant = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
war character
random_war_attacker Iterate through all attackers in the war
random_war_attacker = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
war character
random_war_defender Iterate through all defenders in the war
random_war_defender = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
war character
random_war_participant Iterate through all participants in the war
random_war_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
war character
remove_participant removes the target character from the scope war

war character
set_called_to sets the target character as already called to the scope war

war character
set_casus_belli sets the casus belli of the scope war

war
accept_invitation_for_character accept a characters invitation to the activity

activity character
complete_activity completes the activity, complete_activity = yes ends the activity and runs the on_complete effect, complete_activity = no ends the activity without running the effect

activity
decline_invitation_for_character decline a characters invitation to the activity

activity character
every_activity_declined Iterate through all characters who declined an activity invite to a specific activity
every_activity_declined = { limit = { <triggers> } <effects> }
activity character
every_activity_invited Iterate through all characters who have unanswered invites to a specific activity
every_activity_invited = { limit = { <triggers> } <effects> }
activity character
every_participant Iterate through all participants in an activity
every_participant = { limit = { <triggers> } <effects> }
activity character
invite_character_to_activity invite a character to the activity

activity character
move_activity Moves activity and all members to given location
move_activity = scope:province
activity province
ordered_activity_declined Iterate through all characters who declined an activity invite to a specific activity
ordered_activity_declined = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
activity character
ordered_activity_invited Iterate through all characters who have unanswered invites to a specific activity
ordered_activity_invited = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
activity character
ordered_participant Iterate through all participants in an activity
ordered_participant = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
activity character
random_activity_declined Iterate through all characters who declined an activity invite to a specific activity
random_activity_declined = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
activity character
random_activity_invited Iterate through all characters who have unanswered invites to a specific activity
random_activity_invited = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
activity character
random_participant Iterate through all participants in an activity
random_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
activity character
battle_event Makes a battle event show up in combat, and the combat result summary. The key is used for loc, with '_friendly' or '_enemy' appended. If this side is not the player's side, the two portraits get flipped. battle_event = { left_portrait = someone right_portrait = someone key = string }

combat side
every_side_commander Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
every_side_commander = { limit = { <triggers> } <effects> }
combat side character
every_side_knight Iterate through all knights
every_side_knight = { limit = { <triggers> } <effects> }
combat side character
lose_combat ends the combat as the losing side (doesn't end the combat if evaluated to false)

combat side
ordered_side_commander Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
ordered_side_commander = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
combat side character
ordered_side_knight Iterate through all knights
ordered_side_knight = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
combat side character
random_side_commander Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
random_side_commander = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
combat side character
random_side_knight Iterate through all knights
random_side_knight = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
combat side character
win_combat ends the combat as the winning side (doesn't end the combat if evaluated to false)

combat side
add_from_contribution_attackers Adds prestige, gold and piety based on contribution to allied attackers. parameters: prestige, gold, piety.

casus belli
add_from_contribution_defenders Adds prestige, gold and piety based on contribution to allied defenders. parameters: prestige, gold, piety.

casus belli
every_target_title Iterate through all casus belli's target titles
every_target_title = { limit = { <triggers> } <effects> }
casus belli landed title
ordered_target_title Iterate through all casus belli's target titles
ordered_target_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
casus belli landed title
random_target_title Iterate through all casus belli's target titles
random_target_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
casus belli landed title
add_loot Adds loot to the currently scoped raiding army.
Usage:
	add_loot = VALUE
army
assign_commander Assign a commander for the scoped army
set_commander = scope:a_character
army character
remove_commander Removes the currently assigned commander from the scoped army
remove_commander = yes
army
set_army_location Teleports the army to the given location. Cannot be done while in combat. Will cause combat to happen with this army as the attacker if there's hostiles in the target
set_army_location = scope:province
army province
add_artifact_history Adds a history entry to the artifact, could for example be a reforging event
type = enum - history entry type
date = jomini date - when this historical event took place
actor = character - who is the actor in the event, for example who created it
recipient = character - who is the recipient in the event, for example who was the artifact given to
location = province - where the event took place
artifact
add_artifact_modifier Adds a static modifier to the given artifact
add_artifact_modifier = modifier_name
NOTE: does not support duration!
artifact
add_artifact_title_history Adds the title history of the given title to the scoped artifacts history
add_artifact_title_history = {}
target = title scope - landed title to take history from
date = game date - from which date onwards to copy historical entries
artifact
add_durability Add this much to the artifacts durability

artifact
clear_artifact_modifiers Removes all modifiers from the scoped artifact
clear_artifact_modifiers = yes
artifact
copy_artifact_modifiers Copies the modifiers of the target artifact. Does *not* clear out existing modifiers
copy_artifact_modifiers = target_artifact
artifact artifact
every_artifact_claimant Iterate through all characters with a claim on the scoped artifact
every_artifact_claimant = { limit = { <triggers> } <effects> }
artifact character
every_artifact_house_claimant Iterate through all dynasty houses with a claim on the scoped artifact
every_artifact_house_claimant = { limit = { <triggers> } <effects> }
artifact dynasty house
ordered_artifact_claimant Iterate through all characters with a claim on the scoped artifact
ordered_artifact_claimant = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
artifact character
ordered_artifact_house_claimant Iterate through all dynasty houses with a claim on the scoped artifact
ordered_artifact_house_claimant = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
artifact dynasty house
random_artifact_claimant Iterate through all characters with a claim on the scoped artifact
random_artifact_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
artifact character
random_artifact_house_claimant Iterate through all dynasty houses with a claim on the scoped artifact
random_artifact_house_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
artifact dynasty house
reforge_artifact Reforges the given artifact, restoring its durability and potentially changing any other attributes such as type or modifiers unless those fields are left empty
Be aware that we make use of the current scopes implicitly. This is done in common/artifacts/visuals
name = dynamic description - artifact name
description = dynamic description - artifact description
rarity = enum - artifact rarity, ex. legendary
type = flag - inventory slot type, ex. trinket
modifier = static modifier - applied to the character whom wields this artifact
durability = script value - new durability, will be max by default
max_durability = script value - Optional. A value for the max durability, which would override the one normally assigned by the defines
decaying = yes/no - Optional. Set if artifact decays with time. Yes by default
history = artifact history entry - custom history entry to denote for example that this is artifact was reforged by someone else than the owner
   type = artifact history entry type - available types:
    created_before_history
    created
    discovered
    claimed_by_house
    given
    stolen
    inherited
    conquest
    taken_in_siege
    taken_in_battle
    won_in_duel
    reforged
template = artifact scripted template - a scripted base template with triggers and modifiers
visuals = artifact visual type - how this artifact should appear visually
generate_history = bool - automatically generate a new history entry if none has been scripted?
quality = script value - new quality, used in AI scoring
wealth = script value - new wealth, used in AI scoring
creator = character scope - set a custom creator of the artifact ( default is the owner )
visuals_source = scope containing landed title, dynasty or house - set a source of coat of arms graphics for the artifact 
(only few artifact models actually make use of it. Most notable - banners)
artifact
remove_artifact_feature_group Removes th feature from the specified group from the artifact.
Cannot remove required groups.
remove_artifact_feature_group = key
artifact
remove_artifact_modifier Removes a static modifier to the given artifact
remove_artifact_modifier = modifier_name
NOTE: does not support duration!
artifact
set_artifact_description Sets the description of the given artifact
set_artifact_description = dynamic desc
artifact
set_artifact_feature Sets the specified feature on the artifact.
If there's already a feature of that group, it gets overridden.
set_artifact_feature = key
artifact
set_artifact_feature_group Sets a feature from the specified group on the artifact.
Uses the current scopes. Uses the weighting from the group.
If there's already a feature of that group, it gets overridden.
set_artifact_feature_group = key
artifact
set_artifact_name Sets the name of the given artifact
set_artifact_name = dynamic name
artifact
set_artifact_rarity Sets the rarity of the scoped artifact. Note that this does not update graphics and the like
set_artifact_rarity = common
artifact
set_max_durability Sets the artifact's max durability

artifact
set_owner Change the artifacts owner and transfer it to the given character
set_artifact_owner = {}
target = character scope - the new owner character
history = artifact history entry - custom history entry to denote for example that this is artifact was stolen rather than given
generate_history = bool - automatically generate a new history entry if none has been scripted?
artifact
set_should_decay Set if the scoped artifact should decay with time or not
set_should_decay = yes/no
artifact
generate_coa Generates a coat of arms for the scoped landed title, dynasty or house
generate_coa = yes
landed title, dynasty, dynasty house
reset_coa Rest the coat of arms for the scoped landed title, dynasty or house to its template
reset_coa = yes
landed title, dynasty, dynasty house
set_coa Sets the coat of arms of a landed title, dynasty, or house to the right hand side coat of arms or that of an object of the same type
set_coa = k_england
set_coa = scope:new_coa
landed title, dynasty, dynasty house
add_county_modifier Add a modifier to a county
add_county_modifier = name
add_county_modifier = { modifier = name days/weeks/months/years = int }
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier
landed title
change_county_control Changes the county control of a title. If the title has higher tier than county, the effect will propagate down to all counties below it.

landed title
change_de_jure_drift_progress Change the progress of de jure drift of a title<drifting_title> = { change_de_jure_drift_progress = { target = <drift_target_title> values = <progress_change_value> } }

landed title
change_development_level Changes the development level of a title. If the title has higher tier than county, the effect will propagate down to all counties below it.

landed title
change_development_progress Changes the development progress of a title. If the title has higher tier than county, the effect will propagate down to all counties below it.

landed title
change_development_progress_with_overflow Changes the development progress of a title. If the title has higher tier than county, the effect will propagate down to all counties below it. Will overflow, so adding +100 to a county with 50 progress left will increase the level by 1 and result in 50 progress towards the next level

landed title
clear_title_laws remove all title laws from the scoped title. DOES NOT apply law removal costs and effects.
clear_title_laws = yes
landed title
clear_title_laws_effects remove all title laws from the scoped title. DOES apply law removal costs and effects.
clear_title_laws_effects = yes
landed title
copy_title_history Copy title history from another title
copy_title_history = source_title
landed title landed title
every_past_holder Iterate through all past owners of a title from earliest to latest
every_any_past_holder = { limit = { <triggers> } <effects> }
landed title character
every_past_holder_reversed Iterate through all past owners of a title from latest to earliest
every_any_past_holder_reversed = { limit = { <triggers> } <effects> }
landed title character
every_claimant Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
every_claimant = { limit = { <triggers> } <effects> }
landed title character
every_connected_county Iterate through all counties connected to this one. Is based on top liege
any/every/whatever_connectec_county = {
	max_naval_distance = 500
	allow_one_county_land_gap = yes
every_connected_county = { limit = { <triggers> } <effects> }
landed title landed title
every_controlled_faith Iterate through all faiths headed by a title
every_controlled_faith = { limit = { <triggers> } <effects> }
landed title faith
every_county_province Iterate through all provinces in a county
every_county_province = { limit = { <triggers> } <effects> }
landed title province
every_county_struggle Iterate through all struggles that a county is involved in.
every_county_struggle = { limit = { <triggers> } <effects> }
landed title struggle
every_de_jure_county Iterate through all counties within this dejure title
every_de_jure_county = { limit = { <triggers> } <effects> }
landed title landed title
every_de_jure_county_holder Iterate through all characters directly holding counties within this dejure title
every_de_jure_county_holder = { limit = { <triggers> } <effects> }
landed title character
every_de_jure_top_liege Iterate through all top lieges of the counts within this dejure title
every_de_jure_top_liege = { limit = { <triggers> } <effects> }
landed title character
every_dejure_vassal_title_holder Iterate through all the vassal holders of the title
every_dejure_vassal_title_holder = { limit = { <triggers> } <effects> }
landed title character
every_direct_de_facto_vassal_title Iterate through all de facto vassal titles
every_direct_de_facto_vassal_title = { limit = { <triggers> } <effects> }
landed title landed title
every_direct_de_jure_vassal_title Iterate through the all de jure vassals titles
every_direct_de_jure_vassal_title = { limit = { <triggers> } <effects> }
landed title landed title
every_election_candidate Iterate through all characters who are valid candidates in an election for a title
every_election_candidate = { limit = { <triggers> } <effects> }
landed title character
every_elector Iterate through all characters who are valid electors in an election for a title
every_elector = { limit = { <triggers> } <effects> }
landed title character
every_in_de_facto_hierarchy Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
..._de_jure_vassal_and_below = { continue = { conditions } }
every_in_de_facto_hierarchy = { limit = { <triggers> } <effects> }
landed title landed title
every_in_de_jure_hierarchy Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
..._de_jure_vassal_and_below = { continue = { conditions } }
every_in_de_jure_hierarchy = { limit = { <triggers> } <effects> }
landed title landed title
every_neighboring_county Iterate through all neighboring counties. Can only be used in county scope
every_neighboring_county = { limit = { <triggers> } <effects> }
landed title landed title
every_this_title_or_de_jure_above Iterate through this title and all its dejure liege titles
every_this_title_or_de_jure_above = { limit = { <triggers> } <effects> }
landed title landed title
every_title_heir Line of succession for the scoped title
every_title_heir = { limit = { <triggers> } <effects> }
landed title character
every_title_joined_faction Iterate through all factions joined the scope landed title
every_title_joined_faction = { limit = { <triggers> } <effects> }
landed title faction
every_title_to_title_neighboring_and_across_water_county Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
every_title_to_title_neighboring_and_across_water_county = { limit = { <triggers> } <effects> }
landed title landed title
every_title_to_title_neighboring_and_across_water_duchy Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
every_title_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } <effects> }
landed title landed title
every_title_to_title_neighboring_and_across_water_empire Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
every_title_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } <effects> }
landed title landed title
every_title_to_title_neighboring_and_across_water_kingdom Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
every_title_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } <effects> }
landed title landed title
every_title_to_title_neighboring_county Scopes from a title to a neighboring county (looking trough the de Jure lieges)
every_title_to_title_neighboring_county = { limit = { <triggers> } <effects> }
landed title landed title
every_title_to_title_neighboring_duchy Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
every_title_to_title_neighboring_duchy = { limit = { <triggers> } <effects> }
landed title landed title
every_title_to_title_neighboring_empire Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
every_title_to_title_neighboring_empire = { limit = { <triggers> } <effects> }
landed title landed title
every_title_to_title_neighboring_kingdom Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
every_title_to_title_neighboring_kingdom = { limit = { <triggers> } <effects> }
landed title landed title
lease_out_to Lease out the scoped title
lease_out_to = scope:a_holy_order
landed title holy order
ordered_past_holder Iterate through all past owners of a title from earliest to latest
ordered_any_past_holder = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title character
ordered_past_holder_reversed Iterate through all past owners of a title from latest to earliest
ordered_any_past_holder_reversed = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title character
ordered_claimant Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
ordered_claimant = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title character
ordered_connected_county Iterate through all counties connected to this one. Is based on top liege
any/every/whatever_connectec_county = {
	max_naval_distance = 500
	allow_one_county_land_gap = yes
ordered_connected_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_controlled_faith Iterate through all faiths headed by a title
ordered_controlled_faith = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title faith
ordered_county_province Iterate through all provinces in a county
ordered_county_province = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title province
ordered_county_struggle Iterate through all struggles that a county is involved in.
ordered_county_struggle = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title struggle
ordered_de_jure_county Iterate through all counties within this dejure title
ordered_de_jure_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_de_jure_county_holder Iterate through all characters directly holding counties within this dejure title
ordered_de_jure_county_holder = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title character
ordered_de_jure_top_liege Iterate through all top lieges of the counts within this dejure title
ordered_de_jure_top_liege = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title character
ordered_dejure_vassal_title_holder Iterate through all the vassal holders of the title
ordered_dejure_vassal_title_holder = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title character
ordered_direct_de_facto_vassal_title Iterate through all de facto vassal titles
ordered_direct_de_facto_vassal_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_direct_de_jure_vassal_title Iterate through the all de jure vassals titles
ordered_direct_de_jure_vassal_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_election_candidate Iterate through all characters who are valid candidates in an election for a title
ordered_election_candidate = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title character
ordered_elector Iterate through all characters who are valid electors in an election for a title
ordered_elector = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title character
ordered_in_de_facto_hierarchy Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
..._de_jure_vassal_and_below = { continue = { conditions } }
ordered_in_de_facto_hierarchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_in_de_jure_hierarchy Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
..._de_jure_vassal_and_below = { continue = { conditions } }
ordered_in_de_jure_hierarchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_neighboring_county Iterate through all neighboring counties. Can only be used in county scope
ordered_neighboring_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_this_title_or_de_jure_above Iterate through this title and all its dejure liege titles
ordered_this_title_or_de_jure_above = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_title_heir Line of succession for the scoped title
ordered_title_heir = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title character
ordered_title_joined_faction Iterate through all factions joined the scope landed title
ordered_title_joined_faction = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title faction
ordered_title_to_title_neighboring_and_across_water_county Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
ordered_title_to_title_neighboring_and_across_water_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_title_to_title_neighboring_and_across_water_duchy Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
ordered_title_to_title_neighboring_and_across_water_duchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_title_to_title_neighboring_and_across_water_empire Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
ordered_title_to_title_neighboring_and_across_water_empire = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_title_to_title_neighboring_and_across_water_kingdom Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
ordered_title_to_title_neighboring_and_across_water_kingdom = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_title_to_title_neighboring_county Scopes from a title to a neighboring county (looking trough the de Jure lieges)
ordered_title_to_title_neighboring_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_title_to_title_neighboring_duchy Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
ordered_title_to_title_neighboring_duchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_title_to_title_neighboring_empire Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
ordered_title_to_title_neighboring_empire = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
ordered_title_to_title_neighboring_kingdom Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
ordered_title_to_title_neighboring_kingdom = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
landed title landed title
random_past_holder Iterate through all past owners of a title from earliest to latest
random_any_past_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title character
random_past_holder_reversed Iterate through all past owners of a title from latest to earliest
random_any_past_holder_reversed = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title character
random_claimant Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
random_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title character
random_connected_county Iterate through all counties connected to this one. Is based on top liege
any/every/whatever_connectec_county = {
	max_naval_distance = 500
	allow_one_county_land_gap = yes
random_connected_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_controlled_faith Iterate through all faiths headed by a title
random_controlled_faith = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title faith
random_county_province Iterate through all provinces in a county
random_county_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title province
random_county_struggle Iterate through all struggles that a county is involved in.
random_county_struggle = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title struggle
random_de_jure_county Iterate through all counties within this dejure title
random_de_jure_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_de_jure_county_holder Iterate through all characters directly holding counties within this dejure title
random_de_jure_county_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title character
random_de_jure_top_liege Iterate through all top lieges of the counts within this dejure title
random_de_jure_top_liege = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title character
random_dejure_vassal_title_holder Iterate through all the vassal holders of the title
random_dejure_vassal_title_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title character
random_direct_de_facto_vassal_title Iterate through all de facto vassal titles
random_direct_de_facto_vassal_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_direct_de_jure_vassal_title Iterate through the all de jure vassals titles
random_direct_de_jure_vassal_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_election_candidate Iterate through all characters who are valid candidates in an election for a title
random_election_candidate = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title character
random_elector Iterate through all characters who are valid electors in an election for a title
random_elector = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title character
random_in_de_facto_hierarchy Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
..._de_jure_vassal_and_below = { continue = { conditions } }
random_in_de_facto_hierarchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_in_de_jure_hierarchy Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
This is unrelated to the limit; if the limit is met it is added to the list, but its vassals will get checked even if the limit isn't met as long as the 'continue' trigger is
..._de_jure_vassal_and_below = { continue = { conditions } }
random_in_de_jure_hierarchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_neighboring_county Iterate through all neighboring counties. Can only be used in county scope
random_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_this_title_or_de_jure_above Iterate through this title and all its dejure liege titles
random_this_title_or_de_jure_above = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_title_heir Line of succession for the scoped title
random_title_heir = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title character
random_title_joined_faction Iterate through all factions joined the scope landed title
random_title_joined_faction = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title faction
random_title_to_title_neighboring_and_across_water_county Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
random_title_to_title_neighboring_and_across_water_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_title_to_title_neighboring_and_across_water_duchy Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
random_title_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_title_to_title_neighboring_and_across_water_empire Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
random_title_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_title_to_title_neighboring_and_across_water_kingdom Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
random_title_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_title_to_title_neighboring_county Scopes from a title to a neighboring county (looking trough the de Jure lieges)
random_title_to_title_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_title_to_title_neighboring_duchy Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
random_title_to_title_neighboring_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_title_to_title_neighboring_empire Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
random_title_to_title_neighboring_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
random_title_to_title_neighboring_kingdom Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
random_title_to_title_neighboring_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
landed title landed title
remove_all_county_modifier_instances Remove all instances of a modifier from a county
remove_all_county_modifier_instances = name
landed title
remove_county_modifier Remove a modifier from a county
remove_county_modifier = name
landed title
reset_title_name Sets the name and adjective of the scoped title back to being based on its key. Won't cause the prefix to change
reset_title_name = yes
landed title
reset_title_prefix Sets the prefix of the scoped title back to being based on its key. Won't cause its adjective or name to change
reset_title_prefix = yes
landed title
revoke_lease Revoke the lease of the scoped title
revoke_lease = yes
landed title
set_always_follows_primary_heir Sets if the title should always go to the primary heir in partition succession
set_always_follows_primary_heir = yes
landed title
set_can_be_named_after_dynasty Sets if the title can be named after it's holder's dynasty. set_can_be_named_after_dynasty_effect = no

landed title
set_capital_barony Sets scoped barony to be the county capital
set_capital_barony = yes
landed title
set_capital_county Sets the capital county of the title to the target county
set_capital_county = <some county title>
landed title landed title
set_color_from_title Sets the color of the title to the same as the target title (shifted very slightly to not be identical)
set_color_from_title = <some title>
landed title landed title
set_county_culture sets the culture of a county
usage:
set_county_culture = culture:english/root.character_culture
landed title culture
set_county_faith Changes what faith a county has

landed title faith
set_de_jure_liege_title Set a new DeJure liege title
set_de_jure_liege_title = new_de_jure_liege
landed title landed title
set_definitive_form Sets if the title should use a definitive form name (no 'Kingdom of')
set_definitive_form = yes
landed title
set_delete_on_destroy Sets if the title should be deleted from the gamestate completely when it is destroyed. set_delete_on_destroy = yes

landed title
set_destroy_if_invalid_heir Sets if the title should be destroyed on succession if there's no heir matching its restrictions. set_destroy_if_invalid_heir = yes

landed title
set_destroy_on_gain_same_tier Sets if the title should be deleted from the gamestate completely when character gains or create a new title with the same tier.set_destroy_on_gain_same_tier = yes

landed title
set_destroy_on_succession Sets if the title should be destroyed on succession. set_destroy_on_succession = yes

landed title
set_landless_title Sets if the title is landless (can be held by rulers with no land)
set_landless_title = yes
landed title
set_no_automatic_claims Sets if the title should disallow automatic claims (meaning claims will only be added by script, and by pressed claims being inherited).
set_no_automatic_claims = yes
landed title
set_title_name sets the name (localization key) of the scoped title. The adjective will be constructed by adding '_adj' to the localisation key. Won't cause the prefix to change
set_title_name = TEST_NAME_PLEASE_IGNORE
landed title
set_title_prefix sets the prefix of the scoped title. Won't cause its name or adjective to change
set_title_prefix = PREFIX_THE
landed title
title_create_faction the scoped landed title creates a faction of the specified type against the specified target, title_create_faction = { type = X target = Y }

landed title
title_join_faction the landed title in the scope joins the assigned faction

landed title faction
title_leave_faction the title in the scope leaves the assigned faction

landed title faction
update_dynamic_coa update_dynamic_coa = yes
Updates the dynamic coat of arms definition of a given title picking a new one and overwriting the existing set coat of arms with it if picked
landed title
add_culture_tradition Adds the cultural tradition specified in the RHS to the scope culture.add_culture_tradition = tradition_court_eunuchs

culture
add_innovation Add innovation to a culture. add_innovation = innovation_key

culture
add_name_list Adds the name list to the culture
<culture> = { add_name_list = name }
culture
add_random_innovation Add random available innovation<culture> = { add_random_innovation = culture_group_military/culture_group_civic/culture_group_regional/yes }

culture
add_random_valid_tradition Adds one random valid tradition to a culture. Target character provides context for can_pick and is_shown. If this would put the culture over the tradition limit, an error is loggedadd_random_valid_tradition = scope:character

culture character
add_random_valid_tradition_replace_if_necessary Adds one random valid tradition to a culture. Target character provides context for can_pick and is_shown. If this would put the culture over the tradition limit, a random existing tradition is removedadd_random_valid_tradition_replace_if_necessary = scope:character

culture character
change_cultural_acceptance Changes cultural acceptance with the target culture
change_cultural_acceptance = {
target = <culture>
value = script value
desc = dynamic desc. Description that'll show when hovering over the acceptance tooltip in the culture window
 }
culture
clear_culture_traditions Removes all cultural traditions from the scope culture.clear_culture_traditions = yes

culture
copy_all_traditions_from Replaces all traditions of scoped culture with traditions from the given culturecopy_all_traditions_from = scope:target_culture

culture culture
every_culture_county Iterate through all counties of the culture
every_culture_county = { limit = { <triggers> } <effects> }
culture landed title
every_culture_duchy Iterate through all duchies of the culture (duchies with at least one county of the culture
every_culture_duchy = { limit = { <triggers> } <effects> }
culture landed title
every_culture_empire Iterate through all empires of the culture (empires with at least one county of the culture
every_culture_empire = { limit = { <triggers> } <effects> }
culture landed title
every_culture_kingdom Iterate through all kingdoms of the culture (kingdoms with at least one county of the culture
every_culture_kingdom = { limit = { <triggers> } <effects> }
culture landed title
every_parent_culture Iterate through all parent cultures
every_parent_culture = { limit = { <triggers> } <effects> }
culture culture
every_parent_culture_or_above Iterate through all parent cultures or above
every_parent_culture_or_above = { limit = { <triggers> } <effects> }
culture culture
get_all_innovations_from Discover all innovations from the target culture
get_all_innovations_from = <culture>
culture culture
get_random_innovation_from Get random available innovation from another culture

culture
join_era Joins all culture eras up to and including the given one
join_era = culture_era_type
culture
leave_era Leaves all culture eras down to and including the given one
leave_era = culture_era_type
culture
ordered_culture_county Iterate through all counties of the culture
ordered_culture_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
culture landed title
ordered_culture_duchy Iterate through all duchies of the culture (duchies with at least one county of the culture
ordered_culture_duchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
culture landed title
ordered_culture_empire Iterate through all empires of the culture (empires with at least one county of the culture
ordered_culture_empire = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
culture landed title
ordered_culture_kingdom Iterate through all kingdoms of the culture (kingdoms with at least one county of the culture
ordered_culture_kingdom = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
culture landed title
ordered_parent_culture Iterate through all parent cultures
ordered_parent_culture = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
culture culture
ordered_parent_culture_or_above Iterate through all parent cultures or above
ordered_parent_culture_or_above = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
culture culture
random_culture_county Iterate through all counties of the culture
random_culture_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
culture landed title
random_culture_duchy Iterate through all duchies of the culture (duchies with at least one county of the culture
random_culture_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
culture landed title
random_culture_empire Iterate through all empires of the culture (empires with at least one county of the culture
random_culture_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
culture landed title
random_culture_kingdom Iterate through all kingdoms of the culture (kingdoms with at least one county of the culture
random_culture_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
culture landed title
random_parent_culture Iterate through all parent cultures
random_parent_culture = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
culture culture
random_parent_culture_or_above Iterate through all parent cultures or above
random_parent_culture_or_above = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
culture culture
remove_culture_tradition Removes the cultural tradition specified in the RHS from the scope culture.remove_culture_tradition = tradition_court_eunuchs

culture
remove_innovation Remove innovation from a culture. remove_innovation = innovation_key

culture
remove_random_culture_tradition Removes a random cultural tradition from the scope culture.remove_random_culture_tradition = yes

culture
reset_culture_creation_date Sets the culture creation date to be todays datereset_culture_creation_date = yes

culture
set_cultural_acceptance Sets cultural acceptance with the target culture
set_cultural_accpetance = { target = <culture> value = script value }
culture
set_culture_name Permanently sets the name of the scope culture to the parsed text from the provided localization string.
Like 'set_title_name', the new name is static and unchanging (i.e., if the localization key provided is 'Neo-[old_culture.GetName]' and the old culture is French, the new name is just be saved as a simple string, 'Neo-French', so that if/when the old_culture scope is cleaned up the localization does not break.set_culture_name = {
noun = dynamic description
collective_noun = dynamic description
prefix = dynamic description
}
culture
set_culture_pillar Adds the current pillar specified in the RHS to the scope culture, replacing the pillar in the matching slot.set_culture_pillar = ethos_warmonger

culture
set_ethos_from Set the ethos from the RHS on the scope culture.set_ethos_from = culture:norwegian

culture culture
set_heritage_from Set the heritage from the RHS on the scope culture.set_heritage_from = culture:norwegian

culture culture
set_language_from Set the language from the RHS on the scope culture.set_language_from = culture:norwegian

culture culture
set_martial_custom_from Set the martial custom from the RHS on the scope culture.set_martial_custom_from = culture:norwegian

culture culture
set_name_list Remove all existing name lists then adds the specified name list to the culture
<culture> = { set_name_list = name }
culture
end_story Ends a story and executes it's on_end effect, the story can no longer be accessed after this

story cycle
make_story_owner = character_target makes the character the new owner of the story

story cycle character
change_war_chest_gold Changes the amount of gold in the war chest by the given amount. change_war_chest_gold = script value

great holy war
change_war_chest_piety Changes the amount of piety in the war chest by the given amount. change_war_chest_piety = script value

great holy war
change_war_chest_prestige Changes the amount of prestige in the war chest by the given amount. change_war_chest_prestige = script value

great holy war
divide_war_chest The scoped GHW gives out its war-chest in full or in part.
divide_war_chest = {
	defenders = yes (default to attackers instead)
	faction = script value (default 1 for 100%)
	gold = no (default = yes)
	piety = no (default = yes)
	prestige = no (default = yes)
}
great holy war
do_ghw_title_handout Hands out titles in the target kingdom to the GHW attacker beneficiaries. Will vassalize people based on dejure liege within the taken kingdom. Will refill county garrisons and levies. do_ghw_title_handout = scope:title_and_vassal_change

great holy war title and vassal change
every_pledged_attacker Iterate through all pledged attackers within a great holy war
every_pledged_attacker = { limit = { <triggers> } <effects> }
great holy war character
every_pledged_defender Iterate through all pledged defenders within a great holy war
every_pledged_defender = { limit = { <triggers> } <effects> }
great holy war character
ordered_pledged_attacker Iterate through all pledged attackers within a great holy war
ordered_pledged_attacker = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
great holy war character
ordered_pledged_defender Iterate through all pledged defenders within a great holy war
ordered_pledged_defender = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
great holy war character
pledge_attacker The target character pledges themselves as an attacker in the GHW. Must be of the same faith as the GHW declarer. pledge_attacker = some character

great holy war character
pledge_defender The target character pledges themselves as a defender in the GHW. Must be of the same faith as the GHW target. pledge_defender = some character

great holy war character
random_pledged_attacker Iterate through all pledged attackers within a great holy war
random_pledged_attacker = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
great holy war character
random_pledged_defender Iterate through all pledged defenders within a great holy war
random_pledged_defender = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
great holy war character
reset_designated_winner The GHW stops having a designated winner. reset_designated_winner = yes

great holy war
set_designated_winner The target character becomes the designated winner of the GHW. set_designated_winner = some character

great holy war character
set_great_holy_war_target Sets the target of the great holy war.
set_great_holy_war_target = { target_character = someone target_title = some title }
great holy war
set_war_declarer The target character becomes the character that should declare war instead of the religious head. set_war_declarer = some character

great holy war character
start_ghw_war Starts the GHW war. start_ghw_war = undirected_great_holy_war

great holy war
unpledge_attacker The target character removes their pledge as an attacker in the GHW. unpledge_attacker = some character

great holy war character
unpledge_defender The target character removes their pledge as a defender in the GHW. unpledge_defender = some character

great holy war character
activate_holy_site Activate an inactive holy site<faith_scope> = { activate_holy_site = <holy_site_name> }

faith
add_doctrine Add doctrine to faith<faith_scope> = { add_doctrine = <doctrine_name> }

faith
change_fervor Changes the fervor of the faith by the given value. change_fervor = script value

faith
deactivate_holy_site Deactivate an active holy site<faith_scope> = { deactivate_holy_site = <holy_site_name> }

faith
every_defensive_great_holy_wars Iterate through all great holy wars this faith is defending against
every_defensive_great_holy_wars = { limit = { <triggers> } <effects> }
faith great holy war
every_faith_character Iterate through characters of the scoped faith
every_faith_character = { limit = { <triggers> } <effects> }
faith character
every_faith_holy_order Iterate through all holy orders of the faith
every_faith_holy_order = { limit = { <triggers> } <effects> }
faith holy order
every_faith_playable_ruler Iterate through playable rulers of the scoped faith
every_faith_playable_ruler = { limit = { <triggers> } <effects> }
faith character
every_faith_ruler Iterate through rulers of the scoped faith
every_faith_ruler = { limit = { <triggers> } <effects> }
faith character
every_holy_site Iterate through all holy site baronies of a faith
every_holy_site = { limit = { <triggers> } <effects> }
faith landed title
ordered_defensive_great_holy_wars Iterate through all great holy wars this faith is defending against
ordered_defensive_great_holy_wars = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
faith great holy war
ordered_faith_character Iterate through characters of the scoped faith
ordered_faith_character = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
faith character
ordered_faith_holy_order Iterate through all holy orders of the faith
ordered_faith_holy_order = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
faith holy order
ordered_faith_playable_ruler Iterate through playable rulers of the scoped faith
ordered_faith_playable_ruler = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
faith character
ordered_faith_ruler Iterate through rulers of the scoped faith
ordered_faith_ruler = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
faith character
ordered_holy_site Iterate through all holy site baronies of a faith
ordered_holy_site = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
faith landed title
random_defensive_great_holy_wars Iterate through all great holy wars this faith is defending against
random_defensive_great_holy_wars = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
faith great holy war
random_faith_character Iterate through characters of the scoped faith
random_faith_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
faith character
random_faith_holy_order Iterate through all holy orders of the faith
random_faith_holy_order = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
faith holy order
random_faith_playable_ruler Iterate through playable rulers of the scoped faith
random_faith_playable_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
faith character
random_faith_ruler Iterate through rulers of the scoped faith
random_faith_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
faith character
random_holy_site Iterate through all holy site baronies of a faith
random_holy_site = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
faith landed title
remove_doctrine Remove doctrine from faith<faith_scope> = { remove_doctrine = <doctrine_name> }

faith
remove_religious_head_title Removes the religious head title of the faith
remove_religious_head_title = yes
faith
set_religious_head_title Sets the religious head title of the faith to the given title. set_religious_head_title = scope

faith landed title
start_great_holy_war Starts a great holy war.
start_great_holy_war = {target_character = someonetarget_title = some titledelay = script value # Number of days until the war should startwar = some war # Optional. Will make this a directed GHW instead of undirected, and tie it to this specific war}
faith
add_building Add building to the province<province> = { add_building = <building_name> }

province
add_building_slot Add building slot to the province

province
add_province_modifier Add a modifier to a province
add_province_modifier = name
add_province_modifier = { modifier = name days/weeks/months/years = int }
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier
province
add_special_building Add a special building to the province (will also add/change a special slot if needed)

province
add_special_building_slot Add a special building slot to the province<province> = { add_special_building_slot = <building_name> }

province
begin_create_holding Start construction of the specified holding type. By default player won't get anything if manually cancels the construction
scope:my_province = {
	begin_create_holding = castle_holding
}
Optionally refund cost can be set to some value.
scope:my_province = {
	begin_create_holding = {
		type = castle_holding
		refund_cost = {
			gold = 100
		}
	}
}
province
generate_building Adds a random building to the province, using the AI's construction logic<province> = { generate_building = yes }

province
refill_garrison The scoped province gets its garrison refilled. refill_levy = yes/no

province
refill_levy The scoped province gets its levy refilled. refill_levy = yes/no

province
remove_all_province_modifier_instances Remove all instances of a modifier from a province
remove_all_province_modifier_instances = name
province
remove_building Remove building from the province<province> = { remove_building = <building_name> }

province
remove_holding Removes the holding in scoped province, cannot remove capital holdings

province
remove_province_modifier Remove a modifier from a province
remove_province_modifier = name
province
set_holding_type Changes the scoped province's holding to another type, removing all buildings that are invalid for the new holding.
This might also allow to construct a new holding in an empty province, but it is untested.
province
spawn_activity spawns an activity, spawn_activity = { owner = X type = Y days/months/years = Z }, Z is expiration time can be a value or an inclusive "{A B}" interval from which the value will be picked

province
every_killed_character Iterate through all kills of a character
every_killed_character = { limit = { <triggers> } <effects> }
character, artifact character
ordered_killed_character Iterate through all kills of a character
ordered_killed_character = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character, artifact character
random_killed_character Iterate through all kills of a character
random_killed_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character, artifact character
activate_struggle_catalyst Activate a catalyst
activate_struggle_catalyst = { catalyst = X character = Y} where X is a catalystY is scope:character # optionalsimplified: activate_struggle_catalyst = <catalyst>
struggle
change_struggle_phase Change the phase from the current one to a listed scripted phase
change_phase = X where X is a struggle phase type
struggle
end_struggle End a struggle
end_struggle = yes
struggle
every_interloper_ruler Iterate through all characters that are interloper in a struggle.
every_interloper_ruler = { limit = { <triggers> } <effects> }
struggle character
every_involved_ruler Iterate through all characters that are involved in a struggle.
every_involved_ruler = { limit = { <triggers> } <effects> }
struggle character
ordered_interloper_ruler Iterate through all characters that are interloper in a struggle.
ordered_interloper_ruler = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
struggle character
ordered_involved_ruler Iterate through all characters that are involved in a struggle.
ordered_involved_ruler = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
struggle character
random_interloper_ruler Iterate through all characters that are interloper in a struggle.
random_interloper_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
struggle character
random_involved_ruler Iterate through all characters that are involved in a struggle.
random_involved_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
struggle character
set_culture_as_involved Set a culture as involved in the scoped Struggle.

struggle culture
set_culture_as_uninvolved Set a culture as uninvolved in the scoped Struggle.

struggle culture
set_faith_as_involved Set a faith as involved in the scoped Struggle.

struggle faith
set_faith_as_uninvolved Set a faith as uninvolved in the scoped Struggle.

struggle faith
add_scheme_modifier adds the specified scheme modifier, add_scheme_modifier = { type = X days = Y } (days are optional, the modifier will expire in Y days if specified)

scheme
add_scheme_progress Add progress to the scope scheme. (progress is in 0.0 - 100.0 range)

scheme
end_scheme Ends a specific scheme and removes it without any other effect

scheme
every_scheme_agent Iterate through all agents in the scheme
every_scheme_agent = { limit = { <triggers> } <effects> }
scheme character
expose_scheme Exposes the scheme to the defender

scheme
expose_scheme_agent Exposes the target character as an agent of the current scheme

scheme character
ordered_scheme_agent Iterate through all agents in the scheme
ordered_scheme_agent = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
scheme character
random_scheme_agent Iterate through all agents in the scheme
random_scheme_agent = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
scheme character
remove_scheme_modifier removes the specified scheme modifier

scheme
scheme_freeze_days scheme_freeze_days = X freezes the scheme for X days (0 unfreezes the scheme)

scheme
change_inspiration_progress change_progress = int
Changes the progress of the scoped inspiration
inspiration
invest_gold invest_gold = value
Invests gold into the scoped inspiration from its sponsor, it handles the removal of the gold from the sponsor, must be a positive value
inspiration
add_secret_participant Adds an participant to the secret

secret character
disable_exposure_by Forbids the target character from exposing the secret, disable_exposure_by = target_character

secret character
every_secret_knower Iterate through all characters who know the secret
every_secret_knower = { limit = { <triggers> } <effects> }
secret character
every_secret_participant Iterate through participants in a secret
every_secret_participant = { limit = { <triggers> } <effects> }
secret character
expose_secret Exposes the scope secret

secret character
ordered_secret_knower Iterate through all characters who know the secret
ordered_secret_knower = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
secret character
ordered_secret_participant Iterate through participants in a secret
ordered_secret_participant = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
secret character
random_secret_knower Iterate through all characters who know the secret
random_secret_knower = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
secret character
random_secret_participant Iterate through participants in a secret
random_secret_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
secret character
remove_secret Removes the scope secret

secret
reveal_to Reveals the scope secret to the target character

secret character
set_secret_owner Sets a new owner for the secret

secret character
spend_by Spends the scope secret, spend_by = target_character

secret character
add_dynasty_modifier Add a modifier to a dynasty
add_dynasty_modifier = name
add_dynasty_modifier = { modifier = name days/weeks/months/years = int }
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier
dynasty
add_dynasty_perk Adds dynasty perk. add_dynasty_perk = key

dynasty
add_dynasty_prestige adds dynasty prestige

dynasty
add_dynasty_prestige_level adds dynasty prestige levels

dynasty
every_dynasty_member Iterate through all dynasty members
every_dynasty_member = { limit = { <triggers> } <effects> }
dynasty character
ordered_dynasty_member Iterate through all dynasty members
ordered_dynasty_member = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
dynasty character
random_dynasty_member Iterate through all dynasty members
random_dynasty_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
dynasty character
remove_all_dynasty_modifier_instances Remove all instances of a modifier from a dynasty
remove_all_dynasty_modifier_instances = name
dynasty
remove_dynasty_modifier Remove a modifier from a dynasty
remove_dynasty_modifier = name
dynasty
remove_dynasty_perk Removes dynasty perk. remove_dynasty_perk = key

dynasty
set_dynasty_name Sets dynasty name
set_dynasty_name=loc_key
dynasty
every_leased_title Iterate through all titles leased to a holy order
every_leased_title = { limit = { <triggers> } <effects> }
holy order landed title
ordered_leased_title Iterate through all titles leased to a holy order
ordered_leased_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
holy order landed title
random_leased_title Iterate through all titles leased to a holy order
random_leased_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
holy order landed title
add_diplomacy_skill Adds diplomacy skill

none
add_focus_progress Adds focus progress

none
add_internal_flag adds effect to be read internally (no effect in the gamestate)

none
add_intrigue_skill Adds intrigue skill

none
add_learning_skill Adds learning skill

none
add_martial_skill Adds martial skill

none
add_prowess_skill Adds prowess skill

none
add_stewardship_skill Adds stewardship skill

none
add_title_law add law to scoped title, overriding any current law from the same group. DOES NOT apply law change costs and effects.
add_title_law = princely_elective_succession_law
none
add_title_law_effects add law to scoped title, overriding any current law from the same group. DOES apply law change costs and effects.
add_title_law = princely_elective_succession_law
none
add_to_global_variable_list Adds the event target to a variable list
add_to_variable_list = { name = X target = Y }
Where X is the name of the variable
Where Y is an event target
none
add_to_list Adds the current scope to an arbitrarily-named list (or creates the list if not already present) to be referenced later in the (unbroken) event chain
add_to_list = <string> NOTE, if adding a permanent target to a temporary list, the whole list becomes permanent
none
add_to_local_variable_list Adds the event target to a variable list
add_to_variable_list = { name = X target = Y }
Where X is the name of the variable
Where Y is an event target
none
add_to_temporary_list Adds the current scope to an arbitrarily-named list (or creates the list if not already present) to be referenced later in the same effect
add_to_temporary_list = <string> NOTE, if adding a temporary target to a permanent list, the list will stay permanent
none
add_to_variable_list Adds the event target to a variable list
add_to_variable_list = { name = X target = Y }
Where X is the name of the variable
Where Y is an event target
none
assert_if Conditionally cause an assert during run time
assert_if = { limit = { X } text = Y }, where X is a trigger and Y is an optional string
none
assert_read Conditionally cause an assert during read time
assert_read = X, where X is yes or the string to be printed in the assert
none
break_betrothal Breaks the betrothal between the scope character to the target character, break_betrothal = target

none character
change_global_variable Changes the value or a numeric variable
change_variable = { name = X operation = Y }
Where X is the name of the numeric variable to modify
Where the valid operations are add, subtract, multiply, divide and modulo
Where Y is a fixed point value, script value or event target of a value type
none
change_local_variable Changes the value or a numeric variable
change_variable = { name = X operation = Y }
Where X is the name of the numeric variable to modify
Where the valid operations are add, subtract, multiply, divide and modulo
Where Y is a fixed point value, script value or event target of a value type
none
change_title_holder = {
holder = 'Character that should get the title'
change = 'previously created title_and_vassal_change', adds a title change, will not transfer vassalstake_baronies = yes # Optional; if set, will cause baronies to be taken (rather than vassalized) as well if this title is a countygovernment_base = character # Optional, if the character getting the title was unlanded, their new government will be based on the government of government_base. If no government_base is specified, the government will be based on holder's government.
none
change_title_holder_include_vassals = {
holder = 'Character that should get the title'
change = 'previously created title_and_vassal_change', adds a title change, will transfer vassalstake_baronies = yes # Optional; if set, will cause baronies to be taken (rather than vassalized) as well if this title is a countygovernment_base = character # Optional, if the character getting the title was unlanded, their new government will be based on the government of government_base. If no government_base is specified, the government will be based on holder's government.
none
change_variable Changes the value or a numeric variable
change_variable = { name = X operation = Y }
Where X is the name of the numeric variable to modify
Where the valid operations are add, subtract, multiply, divide and modulo
Where Y is a fixed point value, script value or event target of a value type
none
clamp_global_variable Clamps a variable the specified max and min
clamp_variable = { name = X max = Y min = Z }
Where X is the name of the variable
Where Y and Z are script values
none
clamp_local_variable Clamps a variable the specified max and min
clamp_variable = { name = X max = Y min = Z }
Where X is the name of the variable
Where Y and Z are script values
none
clamp_variable Clamps a variable the specified max and min
clamp_variable = { name = X max = Y min = Z }
Where X is the name of the variable
Where Y and Z are script values
none
clear_global_variable_list Empties the list
clear_variable_list = variable_name
none
clear_local_variable_list Empties the list
clear_variable_list = variable_name
none
clear_saved_scope Clears a saved scope from the top scope
save_scope_as = cool_scope -> clear_saved_scope = cool_scope
none
clear_traits Removes all traits for the character. clear_traits = yes

none
clear_variable_list Empties the list
clear_variable_list = variable_name
none
close_all_views Closes all views. close_all_views = yes

none
close_view Tries to close the defined view.
Take care to set player if effect is executed not through UI but through synchronized code. Else all the window will open for all players.
close_view = {
    view = <view name>
    player = scope:character # optional, else closes for all players who execute the effect
}simplified: close_view = <view name>
none
copy_traits Adds all traits of the target to the character. Skips any traits that the character isn't allowed to have. Will not remove the character's existing traits. copy_traits = scope:character

none character
create_betrothal Betroth the scope character to the target character, create_betrothal = target (at least one of the characters need to not be adult)

none character
create_betrothal_matrilineal Betroth the scope character to the target character matrilineally, create_betrothal_matrilineal = target (at least one of the characters need to not be adult)

none character
create_character Creates a character
save_event_target_as = flag - save the character as an event target
save_temporary_event_target_as = flag - save the character as a temporary event target
name = 
age = 
gender = male/female/character scope
gender_female_chance = script_value - Range (0..100)
opposite_gender = character scope
trait = add this trait
random_traits_list = { count = { 1 5 } traitID = { some triggers } traitID = { some triggers } } - A number of traits specified by count (1 if not specified) will be picked from the traits that have their triggers met. Scopes are the same as where create_character is used. More than one grouping like this can be defined 
random_traits = yes/no
health = 
fertility = 
mother = 
father = 
real_father = (should only be set if the real father is not the same as father=)
employer = will end up in this court, will become a pool character unless specified or father/mother is landed
location = pool province; mutually exclusive with employer
template_character = 
faith, culture and dynasty are set from 1. template_character 2. father 3. mother 4. employer (not employer for dynasty) unless specified directly
faith = faith tag OR a faith scope
random_faith = { catholic = { some triggers } cathar = { some triggers }. Random one where the triggers are met will be picked. Scopes are the same as where create_character is used 
random_faith_in_religion = religion tag OR a faith scope (there's no religion scope)
culture = culture name OR a culture scope
random_culture = { norse = { some triggers } norwegian = { some triggers }. Random one where the triggers are met will be picked. Scopes are the same as where create_character is used 
random_culture_in_group = culture group name OR a culture scope (there's no group scope)
dynasty_house = dynasty house name OR a dynasty house scope
dynasty = generate/inherit/none - What to do if dynasty_house is not specified. generate by default.
martial/diplomacy/intrigue...  =  will get random unless specified
after_creation = { some effects } run after character is created. Scope starts off in the character, with the scope it was created in as PREV, and the same top scope and saved targets etc.
none
create_dynamic_title Creates a dynamic title
The title will be saved to scope:new_titleusage:
create_dynamic_title = {
	tier = <tier>
	name = key/dynamic description	adjective = key/dynamic description (optional; name used if not specified)}
none
create_holy_order Create a new holy order
create_holy_order = {
    leader = scope:a_character
    capital = scope:a_barony_title
    save_scope_as/save_temporary_scope_as = new_holy_order # optional way to get a reference to the new holy order
}
none
create_title_and_vassal_change starts a title and vassal change and saves it as a temporary event target
create_title_and_vassal_change = {
type = conquest (or other type)
save_scope_as = change (name of resulting saved scope)
add_claim_on_loss = yes (optional)
}
none
custom_description_no_bullet Wraps effects that get a custom description instead of the auto-generated one. Also ensures no bullet point appears
custom_description_no_bullet = {
	text = <effect_localization_key>
	subject = <optional subject scope> #defaults to current scope
	object = <optional object scope>
	value = <optional script value>
	... effects ...
}
none
custom_label just a tooltip, the scope as object (for grouping, localization). Can also be written as custom_label = { text = key subject = scope (optional) <hidden effects> }

none
debug_log Log a string to the debug log when this effect executes, debug_log = message, the message can be a localization string with ROOT, SCOPE and PREV available

none
debug_log_date Logs the current date to the debug.log

none
debug_log_scopes Log the current scope to the debug log when this effect executes yes = full scope info, no=only current scope

none
debug_trigger_event Like trigger_event, except it'll print the trigger fulfillment and immediate effects of the event too

none
destroy_artifact Destroy given artifact
destroy_artifact = artifact
none artifact
destroy_inspiration destroy_inspiration = inspiration
Destroys the targeted inspiration, do not use the destroyed scope after calling this since it will have been removed
none inspiration
divorce Divorces the scope character from the target character. divorce = target

none character
duel duel effect that selects an effect based on comparing specified skill of a character to a value or another character's skill. Alternatively, the compare value can be scripted completely
duel = {
    skill = X
    target = Y
    value = Z
    localization = W
    ... random list body
}
Where X is the skill to compare, Y is the target character (requires skill to be set) or integer value Z (works with or without the skill), the rest of the effect is the same as random_list
If the skill is unspecified, the effect needs a value Z (which can use scripted math) which it will then use as the duel vlue directly
If localization = W is specified, the effect localization W will be used (entry in effect_localization database, not a localization key directly)
The skill difference (or scripted duel value) is available as scope:duel_value inside the outcome entries, the duel target is accessible as scope:duel_target
Valid skill, target, combinations: skill + target, skill + value, only value

Since there is now no automatic weighting, we should be using weight numbers in a comparable range to the scope:duel_value value. Since that will always be between -20 and 20 (unless you do something very unusual), and typically in a more narrow range than that, we should stick to those ranges.
Only use larger weights if you want the duel_value to have a smaller impact on the weighting, and only use smaller weights if you want the duel_value to have a huge impact on the weighting.
In addition, it is fully possible for the compare_modifier to reduce the weight to 0, which would mean that it will not be possible to happen at all. I've requested code support to make it so that we can define min and max values for weights, but until further notice we should use ranges that are guaranteed to not hit 0, or include min values in the compare_modifier itself.
Lastly, remember that if you want the outcome of a duel to scale linearly from (almost) 0% to (almost) 100%, the duel_value should be applied 50% to the good outcome, and -50% to the bad outcome. If you only apply it on one side, you will retain a (presumably significant) chunk of chance for the other outcome.
none
else Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met
if = { limit = { <triggers> } <effects> }
else = { <effects> }
none
else_if Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met, and its own limit is met
if = { limit = { <triggers> } <effects> }
else_if = { limit = { <triggers> } <effects> }
none
end_inspiration_sponsorship end_inspiration_sponsorship = inspiration
Stops the sponsorship of the targeted inspiration
none inspiration
every_artifact Iterate through all existing artifacts
every_artifact = { limit = { <triggers> } <effects> }
none artifact
every_barony Iterate through all baronies in the game
every_barony = { limit = { <triggers> } <effects> }
none landed title
every_character_with_royal_court Iterate through all characters with a royal court
every_character_with_royal_court = { limit = { <triggers> } <effects> }
none character
every_county Iterate through all counties in the game
every_county = { limit = { <triggers> } <effects> }
none landed title
every_county_in_region Iterate through all counties in the region. Put 'region = region_name' inside it
every_county_in_region = { limit = { <triggers> } <effects> }
none landed title
every_culture_global Iterate through all cultures in the game
every_culture_global = { limit = { <triggers> } <effects> }
none culture
every_duchy Iterate through all duchies in the game
every_duchy = { limit = { <triggers> } <effects> }
none landed title
every_empire Iterate through all empires in the game
every_empire = { limit = { <triggers> } <effects> }
none landed title
every_in_global_list Iterate through all items in global list. list = name or variable = name
every_in_global_list = { limit = { <triggers> } <effects> }
none
every_in_list Iterate through all items in list. list = name or variable = name
every_in_list = { limit = { <triggers> } <effects> }
none
every_in_local_list Iterate through all items in local list. list = name or variable = name
every_in_local_list = { limit = { <triggers> } <effects> }
none
every_independent_ruler Independent rulers list with a COUNT tier or above who hold land
every_independent_ruler = { limit = { <triggers> } <effects> }
none character
every_inspiration Iterate through all inspirations in the world
every_inspiration = { limit = { <triggers> } <effects> }
none inspiration
every_inspired_character Iterate through all characters with an inspirations in the world
every_inspired_character = { limit = { <triggers> } <effects> }
none character
every_kingdom Iterate through all kingdoms in the game
every_kingdom = { limit = { <triggers> } <effects> }
none landed title
every_living_character Iterate through all living characters
every_living_character = { limit = { <triggers> } <effects> }
none character
every_player Iterate through all player characters
every_player = { limit = { <triggers> } <effects> }
none character
every_pool_character Iterate through all characters in the pool of the given province
every_pool_character = { limit = { <triggers> } <effects> }
none character
every_province Iterate through all provinces (skips non-land and impassable provinces)
every_province = { limit = { <triggers> } <effects> }
none province
every_religion_global Iterate through all religions in the game
every_religion_global = { limit = { <triggers> } <effects> }
none religion
every_ruler Rulers list with a COUNT tier o above
every_ruler = { limit = { <triggers> } <effects> }
none character
hidden_effect_new_artifact Specific Artifact effects intended for use with newly created artifacts. These are hidden from tooltip, with no description generated whatsoever!

none
if Executes enclosed effects if limit criteria are met
if = { limit = { <triggers> } <effects> }
none
multiply_focus_progress Multiplies focus progress

none
open_interaction_window Tries to open the defined view.
interaction = interaction_key - the interaction object key to open
redirect = [yes|no] - yes by default, redirect the actor and recipients ( only works if secondary_actor and secondary_recipient are not setup or are invalid)
actor = character_actor - must be defined, must coincide with the current player
recipient = character_actor - must be defined
secondary_actor = character_secontary_actor - optional
secondary_recipient = character_secondary_recipient - optional
none
open_view Tries to open the defined view without scope data.
Take care to set player if effect is executed not through UI but through synchronized code. Else all the window will open for all players.
open_view = {
    view = <view name>
    view_message = <view specific instruction> # optional
    player = scope:character # optional, else shows for all players who execute the effect
}simplified: open_view = <view name>
none
open_view_data Tries to open the defined view with scope data.
Take care to set player if effect is executed not through UI but through synchronized code. Else all the window will open for all players.
open_view_data = {
    view = <view name>
    view_message = <view specific instruction> # optional
    player = scope:character # optional, else shows for all players who execute the effect
}
simplified: open_view_data = <view name>
for example: scope:faith = { open_view_data = faith_conversion }
none
ordered_artifact Iterate through all existing artifacts
ordered_artifact = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none artifact
ordered_barony Iterate through all baronies in the game
ordered_barony = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none landed title
ordered_character_with_royal_court Iterate through all characters with a royal court
ordered_character_with_royal_court = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none character
ordered_county Iterate through all counties in the game
ordered_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none landed title
ordered_county_in_region Iterate through all counties in the region. Put 'region = region_name' inside it
ordered_county_in_region = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none landed title
ordered_culture_global Iterate through all cultures in the game
ordered_culture_global = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none culture
ordered_duchy Iterate through all duchies in the game
ordered_duchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none landed title
ordered_empire Iterate through all empires in the game
ordered_empire = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none landed title
ordered_in_global_list Iterate through all items in global list. list = name or variable = name
ordered_in_global_list = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none
ordered_in_list Iterate through all items in list. list = name or variable = name
ordered_in_list = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none
ordered_in_local_list Iterate through all items in local list. list = name or variable = name
ordered_in_local_list = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none
ordered_independent_ruler Independent rulers list with a COUNT tier or above who hold land
ordered_independent_ruler = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none character
ordered_inspiration Iterate through all inspirations in the world
ordered_inspiration = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none inspiration
ordered_inspired_character Iterate through all characters with an inspirations in the world
ordered_inspired_character = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none character
ordered_kingdom Iterate through all kingdoms in the game
ordered_kingdom = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none landed title
ordered_living_character Iterate through all living characters
ordered_living_character = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none character
ordered_player Iterate through all player characters
ordered_player = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none character
ordered_pool_character Iterate through all characters in the pool of the given province
ordered_pool_character = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none character
ordered_province Iterate through all provinces (skips non-land and impassable provinces)
ordered_province = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none province
ordered_religion_global Iterate through all religions in the game
ordered_religion_global = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none religion
ordered_ruler Rulers list with a COUNT tier o above
ordered_ruler = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
none character
pan_camera_to_province Pans the camera to the specified province
pan_camera_to_province = scope:army.location
none province
pan_camera_to_title Pans the camera to the specified title
pan_camera_to_title = capital_barony
none landed title
random_artifact Iterate through all existing artifacts
random_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none artifact
random_barony Iterate through all baronies in the game
random_barony = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none landed title
random_character_with_royal_court Iterate through all characters with a royal court
random_character_with_royal_court = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none character
random_county Iterate through all counties in the game
random_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none landed title
random_county_in_region Iterate through all counties in the region. Put 'region = region_name' inside it
random_county_in_region = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none landed title
random_culture_global Iterate through all cultures in the game
random_culture_global = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none culture
random_duchy Iterate through all duchies in the game
random_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none landed title
random_empire Iterate through all empires in the game
random_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none landed title
random_in_global_list Iterate through all items in global list. list = name or variable = name
random_in_global_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none
random_in_list Iterate through all items in list. list = name or variable = name
random_in_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none
random_in_local_list Iterate through all items in local list. list = name or variable = name
random_in_local_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none
random_independent_ruler Independent rulers list with a COUNT tier or above who hold land
random_independent_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none character
random_inspiration Iterate through all inspirations in the world
random_inspiration = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none inspiration
random_inspired_character Iterate through all characters with an inspirations in the world
random_inspired_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none character
random_kingdom Iterate through all kingdoms in the game
random_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none landed title
random_living_character Iterate through all living characters
random_living_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none character
random_log_scopes Log the current scope to the random log when this effect executes. Only use temprorarily for debugging purposes as it can introduce localized strings into the Scopes._Random log. yes = full scope info, no=only current scope

none
random_player Iterate through all player characters
random_player = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none character
random_pool_character Iterate through all characters in the pool of the given province
random_pool_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none character
random_province Iterate through all provinces (skips non-land and impassable provinces)
random_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none province
random_religion_global Iterate through all religions in the game
random_religion_global = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none religion
random_ruler Rulers list with a COUNT tier o above
random_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
none character
remove_from_list Removes the current scope from a named list remove_from_list = <string>

none
remove_global_variable Removes a variable
remove_variable = variable_name
none
remove_list_global_variable Removes the target from a variable list
remove_list_variable = { name = X target = Y }
Where X is the name of the variable
Where Y is an event target
none
remove_list_local_variable Removes the target from a variable list
remove_list_variable = { name = X target = Y }
Where X is the name of the variable
Where Y is an event target
none
remove_list_variable Removes the target from a variable list
remove_list_variable = { name = X target = Y }
Where X is the name of the variable
Where Y is an event target
none
remove_local_variable Removes a variable
remove_variable = variable_name
none
remove_title_law remove law from scoped title. This will leave the law group empty, so only do this if you're getting rid of a law group. DOES NOT apply law removal costs and effects.
remove_title_law = princely_elective_succession_law
none
remove_title_law_effects remove law from scoped title. This will leave the law group empty, so only do this if you're getting rid of a law group. DOES apply law removal costs and effects.
remove_title_law = princely_elective_succession_law
none
remove_variable Removes a variable
remove_variable = variable_name
none
resolve_title_and_vassal_change resolve_title_and_vassal_change = scope:change
Execute and destory the target title and vassal change, the change cannot be used after calling this effect
none title and vassal change
round_global_variable Rounds a variable to the nearest specified value
clamp_variable = { name = X nearest = Y }
Where X is the name of the variable
Where Y is a script value
none
round_local_variable Rounds a variable to the nearest specified value
clamp_variable = { name = X nearest = Y }
Where X is the name of the variable
Where Y is a script value
none
round_variable Rounds a variable to the nearest specified value
clamp_variable = { name = X nearest = Y }
Where X is the name of the variable
Where Y is a script value
none
run_interaction Execute/send the given interaction
interaction = interaction_key - the interaction object key to run
redirect = [yes|no] - yes by default, redirect the actor and recipients ( only works if secondary_actor and secondary_recipient are not setup or are invalid)
actor = character_actor - must be defined
recipient = character_actor - must be defined
secondary_actor = character_secontary_actor - optional
secondary_recipient = character_secondary_recipient - optional
execute_threshold = accept/maybe/decline - will be executed immediately if the AI response is at least this
send_threshold = accept/maybe/decline - will be sent if the AI response is at least this
At least one of execute_threshold and send_threshold must be set
none
save_opinion_value_as Saves the scoped character's opinion of the target character as an arbitrarily-named target to be referenced later in the (unbroken) event chain
save_opinion_value_as = { name = <string> target = x }
none
save_scope_as Saves the current scope as an arbitrarily-named target to be referenced later in the (unbroken) event chain
save_event_target_as = <string>
none
save_scope_value_as Saves a numerical or bool value as an arbitrarily-named target to be referenced later in the (unbroken) event chain
save_scope_value_as = { name = <string> value = x }
none
save_temporary_opinion_value_as Saves the scoped character's opinion of the target character as an arbitrarily-named target to be referenced later in the in the same effect
save_temporary_opinion_value_as = { name = <string> target = x
none
save_temporary_scope_as Saves the current scope as an arbitrarily-named temporary target to be referenced later in the same effect
save_temporary_event_target_as = <string>
none
save_temporary_scope_value_as Saves a numerical or bool value as an arbitrarily-named temporary target to be referenced later in the same effect
save_temporary_scope_value_as = { name = <string> value = x }
none
set_focus_progress Sets focus progress

none
set_generated_asexuality_chance Sets the chance for a generated character to be asexual
set_generated_asexuality_chance = 20
none
set_generated_bisexuality_chance Sets the chance for a generated character to be bisexual
set_generated_bisexuality_chance = 20
none
set_generated_homosexuality_chance Sets the chance for a generated character to be homosexual
set_generated_homosexuality_chance = 20
none
set_global_variable Sets a variable
set_variable = { name = X value = Y days = Z }
Where X is the name of the variable used to then access it
Where Y is any event target, bool, value, script value or flag (flag:W)
An optional days where Z is the number of days or script value; this can't refer to another variable’s value directly and should instead point to a script value that then checks that variable’s value.
This variable will be accessible with <type_>var:X. With type being in a scope object or in a top scope
Can also be used as set_variable = X (equivalent to set_variable = { name = X value = yes })
none
set_local_variable Sets a variable
set_variable = { name = X value = Y days = Z }
Where X is the name of the variable used to then access it
Where Y is any event target, bool, value, script value or flag (flag:W)
An optional days where Z is the number of days or script value; a variable cannot be used in this section, and you should instead use a script value that checks the variable’s value.
This variable will be accessible with <type_>var:X. With type being in a scope object or in a top scope
Can also be used as set_variable = X (equivalent to set_variable = { name = X value = yes })
none
set_pregnancy_gender Set the gender of the unborn child
set_pregnancy_gender = female/male/random
none
set_variable Sets a variable
set_variable = { name = X value = Y days = Z }
Where X is the name of the variable used to then access it
Where Y is any event target, bool, value, script value or flag (flag:W)
An optional days where Z is the number of days or script value; this cannot refer to another variable’s value directly, and should instead refer to a script value that checks that variable’s value.
This variable will be accessible with <type_>var:X. With type being in a scope object or in a top scope
Can also be used as set_variable = X (equivalent to set_variable = { name = X value = yes })
none
setup_claim_cb = { attacker = scope:attacker
 defender = scope:defender 
 claimant = scope:claimant 
  change = scope:change victory = yes/no 
 take_occupied = yes/no } , this effect will add a scope:cb_prestige_factor with a value based on what's being taken
civil_war = yes # Will vassalize people based on their capital location rather than being fully contained. Won't steal land from people not vassalized
none
setup_de_jure_cb = { attacker = scope:attacker
defender = scope:defender 
change = scope:change
victory = yes/no
title = some title - Optional; will make it target a specific dejure title rather than *everything* that is dejure the attacker's
}, this effect will add a scope:cb_prestige_factor with a value based on what's being taken
none
setup_invasion_cb = { attacker = scope:attacker
 defender = scope:defender 
  change = scope:change victory = yes/no 
 take_occupied = yes/no } , this effect will add a scope:cb_prestige_factor with a value based on what's being taken
none
start_struggle Start a struggle
start_struggle = { struggle_type = X start_phase = Y } where X is a struggle type, Y is a phase
none
start_tutorial_lesson Starts the tutorial lesson with the given key. Does nothing if the tutorial is not running, the lesson is completed (or already running), or the lesson cannot be triggered (e.g. trigger fails)

none
trigger_event triggers an event or on_action
trigger_event = { id = X days/months/years = Y delayed = yes/no } (for events)
or
trigger_event = { on_action = X days/months/years = Y delayed = yes/no } (for on_actions)
Days/months/years are optional and equal to 0 if not specified. If specified, Y can be a value or an inclusive interval "{ A B }" from which the duration will be picked Scopes._Randomly.
delayed = yes will delay the event/on_action to the next event tick even when there's no explicit time interval set (delay, but fire ASAP). By default, delayed = no
none
try_create_important_action Tries to create an important action notification. Will keep the current one if already exists.
important_action_type = important_action_type_key - the important action object key to create. Must be defined.
actor = character_actor - optional, can be used by the important action effect
recipient = character_actor - optional, can be used by the important action effect
secondary_actor = character_secontary_actor - optional, can be used by the important action effect
secondary_recipient = character_secondary_recipient - optional, can be used by the important action effect
landed_title = landed_title - optional, can be used by the important action effect
war = war - optional, can be used by the important action effect
artifact = artifact - optional, can be used by the important action effect
culture = culture - optional, can be used by the important action effect
none
try_create_suggestion Tries to create an suggestuib notification. Will keep the current one if already exists.
suggestion_type = suggestion_type_key - the suggestion action object key to create. Must be defined.
actor = character_actor - optional, can be used by the suggestion effect
recipient = character_actor - optional, can be used by the suggestion effect
secondary_actor = character_secontary_actor - optional, can be used by the suggestion effect
secondary_recipient = character_secondary_recipient - optional, can be used by the suggestion effect
landed_title = landed_title - optional, can be used by the suggestion effect
none
add_amenity_level add_amenity_level = { type = food value = 2 }
Increases the amenity type by the given value for the scoped character
character
add_character_flag adds a character flag
usage:
add_character_flag = X
add_character_flag = { flag = X days/weeks/years = Y }
where X is the name of the flag and Y is a value or value interval "{ min max }"
character
add_character_modifier Add a modifier to a character
add_character_modifier = name
add_character_modifier = { modifier = name days/weeks/months/years = int }
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier
character
add_courtier Add the target character to the scope character's court

character character
add_diplomacy_lifestyle_perk_points Adds lifestyle per points to the given character

character
add_diplomacy_lifestyle_xp Adds lifestyle XP to the given character

character
add_dread adds (or removes) dread to a character

character
add_gold adds gold to a character

character
add_hook Adds a hook on a character
add_hook = { type = X, target = Y, secret = Z, days/months/years = W  }
Note: days/months/years optional (taken from hook type otherwise) and can be a value or an interval, secret required for hook types that require it.
Does send a toast to the player if it's involved.
character
add_hook_no_toast Adds a hook on a character
add_hook = { type = X, target = Y, secret = Z, days/months/years = W  }
Note: days/months/years optional (taken from hook type otherwise) and can be a value or an interval, secret required for hook types that require it.
Does NOT send a toast to the player.
character
add_intrigue_lifestyle_perk_points Adds lifestyle per points to the given character

character
add_intrigue_lifestyle_xp Adds lifestyle XP to the given character

character
add_joined_faction_discontent add_joined_faction_discontent = X adds (or subtracts) discontent to the factions the scope character is in

character
add_knows_of_killer Adds the right hand side character as knowing of the killer of the scoped object
dead_person = { add_knows_of_killer = root }
character character
add_learning_lifestyle_perk_points Adds lifestyle per points to the given character

character
add_learning_lifestyle_xp Adds lifestyle XP to the given character

character
add_martial_lifestyle_perk_points Adds lifestyle per points to the given character

character
add_martial_lifestyle_xp Adds lifestyle XP to the given character

character
add_opinion Adds a temporary opinion modifier, add_opinion = { modifier = X days/months/years = Y target = Z }
X is a scripted modifier name. Y can be a value or a range "{ A B }" If no timeout are specified, the modifier's scripted default timeout will be used.
character
add_perk Adds the perk for this character

character
add_personal_artifact_claim Adds a personal claim on the target artifact to the scoped character

character artifact
add_piety gives (or takes) piety to a character

character
add_piety_experience gives (or takes) piety experience to a character

character
add_piety_level increases (or decreases) the piety level of a character

character
add_piety_no_experience gives (or takes) piety without experience to a character

character
add_pressed_claim gives a pressed claim to a character

character landed title
add_prestige gives (or takes) prestige to a character

character
add_prestige_experience gives (or takes) prestige experience to a character

character
add_prestige_level increases (or decreases) the prestige level of a character

character
add_prestige_no_experience gives (or takes) prestige without experience to a character

character
add_realm_law Adds the given law to the scoped character

character
add_realm_law_skip_effects Adds the given law to the scoped character. Skips the cost and the pass effect, and the revoke effects of the current law

character
add_relation_flag Adds a flag to an existing relation
add_relation_flag = {
  relation = scripted_relation
  flag = flag_name (declared in the relation's script)
  target = other_character
}
character
add_scheme_cooldown Sets a scheme cooldown for the scope character towards = { target=target_character type=scheme_type days/weeks/months/years = duration }

character
add_secret Adds a secret
add_secret = { type = X target = Y }
Note that if you create a Secret in the immediate effect, the tooltips for other effects run in that Secret's scope (such as reveal_to) are likely to be displayed incorrectly, or not to be displayed at all. This is due to the game generating the tooltip before it actually has a Secret that exists to work off of.
Test rigorously and use custom tooltips if necessary. Creating a Secret in the immediate and then running effects on it in an event option should produce perfectly normal tooltips.
character
add_stewardship_lifestyle_perk_points Adds lifestyle per points to the given character

character
add_stewardship_lifestyle_xp Adds lifestyle XP to the given character

character
add_stress increases (or decreases) stress of a character

character
add_targeting_factions_discontent add_targeting_factions_discontent = X adds (or subtracts) discontent to all the factions that are targeting the scope character

character
add_to_scheme Adds a character as an agent to the scheme

character scheme
add_trait Adds a trait to a character (the trait will not be added and no tooltip will be shown if the character isn't eligible for the trait, i.e. when already having the trait, having an opposing trait, not fulfilling the trait's is_potential trigger or being outside of the trait's range)

character
add_trait_force_tooltip Adds a trait to a character (if the add_trait effect would not add the trait - i.e. when already having the trait, having an opposing trait, not fulfilling the trait's is_potential trigger or being outside of the trait's range - a tooltip will be shown but the trait will not be added)

character
add_truce_both_ways Sets the both-way truce against the specified character
'character' specifies the target character
'override' says whether it should replace the previous truce even if shorter
'years / months / days' sets the duration of the truce
'result' specifies the result from the scope character's point of view ('white_peace' by default)
'casus_belli' sets the casus belli scope that caused the truce, mutually exclusive with 'name'
'name' sets a custom description. Dynamic description with the current scope
'war' sets the war that caused the truce, mutually exclusive with 'casus_belli'
add_truce_both_ways = { character = X years/months/days = Y override = yes/no result = victory/defeat/white_peace casus_belli/war = Z }
character
add_truce_one_way Sets the truce against the specified character
'character' specifies the target character
'override' says whether it should replace the previous truce even if shorter
'years / months / days' sets the duration of the truce
'result' specifies the result from the scope character's point of view ('white_peace' by default)
'casus_belli' sets the casus belli scope that caused the truce, mutually exclusive with 'name'
'name' sets a custom description. Dynamic description with the current scope
add_truce_one_way = { character = X years/months/days = Y override = yes/no result = victory/defeat/white_peace casus_belli/war = Z }
character
add_tyranny adds (or removes) tyranny to (or from) a character

character
add_unpressed_claim gives an unpressed claim to a character

character landed title
add_visiting_courtier Add the target character as the scope character's guest

character character
allow_alliance Allows (previously broken) alliance with the target character

character character
allow_in_scheme Allow the character to join the scheme as an agent

character scheme
apply_ai_vassal_obligation_liege_most_desired Apply the new level for the most desired AI obligation level the liege in the contract wants

character
apply_ai_vassal_obligation_vassal_most_desired Apply the new level for the most desired AI obligation level the vassal in the contract wants

character
appoint_court_position Appoints the target character in target court position within scoped character's court
recipient = character scope - target character to receive the title
court_position = court position type - court position type to assign the receiver
character
assign_council_task Assigns the target character to the council task
assign_council_task = {
    council_task = council_task_scope
    target = character_taking_the_position    fire_on_actions = [yes]
}
character
assign_councillor_type Assigns the target character to the first available council position of the type available. { type = council_position_type_key target = character_taking_the_position fire_on_actions = [yes] }

character
banish The character gets banished.

character
becomes_independent becomes and independent ruler. becomes_independent = { change = 'previously created title_and_vassal_change'

character
break_alliance Breaks the alliance with the target character

character character
cancel_truce_both_ways Ends the truce against the specified character, and theirs against the scoped character. cancel_truce_both_ways = scope:character

character character
cancel_truce_one_way Ends the truce against the specified character. cancel_truce_one_way = scope:character

character character
change_age Changes the character's age by the given amount. Sets age to 0 if it'd end up below 0. Note that this will completely bypass birthday on-actions, age-related health, and so on, just like the console command
   Usage: change_age = script value
character
change_current_court_grandeur Changes the current court grandeur of a character with a royal court, clamped between NRoyalCourt::COURT_GRANDEUR_MIN and NRoyalCourt::COURT_GRANDEUR_MAX.

character
change_current_weight Change the current weight of the scoped character
change_current_weight = 20
character
change_first_name Change the first name of a character
change_first_name = <localization_key>
change_first_name = scope:name/var:name # containing a flag with a localization key
change_first_name = { template_character = scope:character } # copy name from the template character
character
change_government changes the government of a character

character
change_liege = { liege = 'Character that should become the new liege' change = 'previously created title_and_vassal_change', adds a liege change

character
change_prison_type Changes the charater's prison type. Scoped character is the prisoner. Accepts any static modifier (see also improson effect).
change_prison_type = house_arrest
character
change_target_weight Change the target weight of the scoped character
change_target_weight = 20
character
change_trait_rank Changes the trait rank = { trait = trait_group rank = change max = maximum new rank }

character
clear_forced_vote Clears forced voting
clear_forced_vote = yes
character
consume_banish_reasons 'Consume' all banish reasons that the scoped character has on the target character. Until they get a new reason, they cannot banish the target again.

character character
consume_divorce_reasons 'Consume' all divorce reason that the scoped character has on the target character. Until they get a new reason, they cannot divorce the target again.

character character
consume_execute_reasons 'Consume' all execute reasons that the scoped character has on the target character. Until they get a new reason, they cannot execute the target again.

character character
consume_imprisonment_reasons 'Consume' all imprisonment reasons that the scoped character has on the target character. Until they get a new reason, they cannot imprison the target again.

character character
consume_revoke_title_reason 'Consume' 1 revoke title reason that the scoped character has on the target character.

character character
copy_inheritable_appearance_from copies the inheritable appearance attributes (inheritable genes in the character's DNA string) from the target character to the scoped character

character character
copy_localized_text Copies a piece of localized text from the target character for the given key.
copy_localized_text = { key = key target = character }
character
create_alliance Create an alliance between the scoped character and the target. The allied through characters determine who gets checked against for if the alliance should persist or not.
create_alliance = {
	target = scope
	allied_through_owner = scope
	allied_through_target = scope
}
OR as a short hand use just the target to use the owner and target as the allied through characters
create_alliance = scope
character
create_artifact Creates a new artifact and adds it to the inventory of the given character
Be aware that we make use of the current scopes implicitly. This is done in common/artifacts/visuals
name = dynamic description - artifact name
description = dynamic description - artifact description
rarity = enum - artifact rarity, ex. legendary
type = flag - inventory slot type, ex. trinket
modifier = static modifier - applied to the character whom wields this artifact
durability = script value - new durability, will be max by default
max_durability = script value - Optional. A value for the max durability, which would override the one normally assigned by the defines
decaying = yes/no - Optional. Set if artifact decays with time. Yes by default
history = artifact history entry - custom history entry to denote for example that this is artifact was reforged by someone else than the owner
   type = artifact history entry type - available types:
    created_before_history
    created
    discovered
    claimed_by_house
    given
    stolen
    inherited
    conquest
    taken_in_siege
    taken_in_battle
    won_in_duel
    reforged
template = artifact scripted template - a scripted base template with triggers and modifiers
visuals = artifact visual type - how this artifact should appear visually
generate_history = bool - automatically generate a new history entry if none has been scripted?
quality = script value - new quality, used in AI scoring
wealth = script value - new wealth, used in AI scoring
creator = character scope - set a custom creator of the artifact ( default is the owner )
visuals_source = scope containing landed title, dynasty or house - set a source of coat of arms graphics for the artifact 
(only few artifact models actually make use of it. Most notable - banners)
 save_scope_as = new artifact - an optional way to get a reference to the newly created artifact
title_history = title - history entries of the given title will be added to the artifact history
title_history_date = game date - from which date onwards to copy historical entries from given title
creator = character scope - set a custom creator of the artifact ( default is the owner )
character
create_cadet_branch no]

character
create_divergent_culture Creates a new divergent culture from the scope character's culture. The new culture will keep all pillars and traditions of the parent culture — it is up to the user to add or remove pillars and traditions as appropriate.The new divergent culture is saved as scope:new_culture.
create_divergent_culture = yes
character
create_divergent_culture_with_side_effects Creates a new divergent culture from the scope character's culture. This also incurs the cost, does conversion, and such, just as if you'd diverged via the UI. Unlike create_divergent_culture, it will change ethos and suchThe new culture is NOT saved as a scope due to technical limitations.
create_divergent_culture_with_side_effects = yes
character
create_divergent_culture_with_side_effects_excluding_cost Creates a new divergent culture from the scope character's culture. Ignores the cost, does conversion, and such, just as if you'd diverged via the UI. Unlike create_divergent_culture, it will change ethos and suchThe new culture is NOT saved as a scope due to technical limitations.
create_divergent_culture_with_side_effects_excluding_cost = yes
character
create_faction the scoped character creates a faction of the specified type against the specified target, create_faction = { type = X target = Y }

character
create_hybrid_culture Creates a new hybrid culture from the scope character's culture and the RHS culture. The new culture will have a random mix of pillars and traditions from both, like when the AI hybridizes. The new hybrid culture is saved as scope:new_culture.
create_hybrid_culture = culture:anglo-saxon
character culture
create_hybrid_culture_with_side_effects Creates a new hybrid culture from the scope character's culture and the RHS culture. The new culture will have a random mix of pillars and traditions from both, like when the AI hybridizes. This also incurs the cost, does conversion, and such, just as if you'd hybridized via the UI. The new hybrid culture is NOT saved as a scope due to technical limitations.
create_hybrid_culture_with_side_effects = culture:anglo-saxon
character culture
create_inspiration create_inspiration = inspiration_type
Creates an inspiration of a given type owned by scoped character, new inspiration is saved as scope:new_inspiration
create_inspiration = { type = inspiration_type gold = script_value }
As above but overrides the base cost compared to the one defined in the type
character
create_story creates and initializes a story cycle with the current character as owner
create_story = story_type
create_story = {
	type = story_type
	save_scope_as/save_temporary_scope_as = scope_name # optional way to get a reference to the new story}
character
death kills a character, death = { killer = X death_reason = Y artifact = Z }, where X is a character and Y is one of the death reason keys. Optionally artifact Z will be used as the killing artifact instead of the defaulted one from the killer's slot for that death reason's definition. Or death = natural which will pick a natural death reason to kill the character from.

character
depose The character gets deposed.

character
destroy_title Destroys a title
destroy_title = title:<title>
character landed title
end_pregnancy end a pregnancy

character
every_alert_creatable_title Iterate through all titles that can be created by the character. (only for alerts)
every_alert_creatable_title = { limit = { <triggers> } <effects> }
character landed title
every_alert_usurpable_title Iterate through all titles that can be usurped by the character. (only for alerts)
every_alert_usurpable_title = { limit = { <triggers> } <effects> }
character landed title
every_ally Iterate through all allies
every_ally = { limit = { <triggers> } <effects> }
character character
every_ancestor Iterate through all the ancestors of the scope character up to 5 generations
every_ancestor = { limit = { <triggers> } <effects> }
character character
every_army Iterate through all armies
every_army = { limit = { <triggers> } <effects> }
character army
every_character_artifact Iterate through all artifacts in a given characters inventory
every_character_artifact = { limit = { <triggers> } <effects> }
character artifact
every_character_struggle Iterate through all struggles that character is involved in.
every_character_struggle = { limit = { <triggers> } <effects> }
Optional: Narrow down the involvement status *_character_struggle = { involvement = involved | interloper }
character struggle
every_character_to_title_neighboring_and_across_water_county Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
every_character_to_title_neighboring_and_across_water_county = { limit = { <triggers> } <effects> }
character landed title
every_character_to_title_neighboring_and_across_water_duchy Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
every_character_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } <effects> }
character landed title
every_character_to_title_neighboring_and_across_water_empire Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
every_character_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } <effects> }
character landed title
every_character_to_title_neighboring_and_across_water_kingdom Scopes from a character to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
every_character_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } <effects> }
character landed title
every_character_to_title_neighboring_county Scopes from a character to a neighboring county (looking trough the de Jure lieges)
every_character_to_title_neighboring_county = { limit = { <triggers> } <effects> }
character landed title
every_character_to_title_neighboring_duchy Scopes from a character to a neighboring duchy (looking trough the de Jure lieges)
every_character_to_title_neighboring_duchy = { limit = { <triggers> } <effects> }
character landed title
every_character_to_title_neighboring_empire Scopes from a character to a neighboring empire (looking trough the de Jure lieges)
every_character_to_title_neighboring_empire = { limit = { <triggers> } <effects> }
character landed title
every_character_to_title_neighboring_kingdom Scopes from a character to a neighboring kingdom (looking trough the de Jure lieges)
every_character_to_title_neighboring_kingdom = { limit = { <triggers> } <effects> }
character landed title
every_character_war Wars of the scoped character
every_character_war = { limit = { <triggers> } <effects> }
character war
every_child Iterate through all children
every_child = { limit = { <triggers> } <effects> }
character character
every_claim Iterate through the titles of all claims held by a character; parameters: explicit = yes/no/all pressed = yes/no/all
every_claim = { limit = { <triggers> } <effects> }
character landed title
every_claimed_artifact Iterate through all claimed artifacts of the scoped character
every_claimed_artifact = { limit = { <triggers> } <effects> }
character artifact
every_close_family_member Iterate through all the close family [father, mother, siblings, children, grandparents]
every_close_family_member = { limit = { <triggers> } <effects> }
character character
every_close_or_extended_family_member Iterate through all the close and extended relatives [father, mother, siblings, children, grandparents, uncles/aunts, nephew/niece, cousins]
every_close_or_extended_family_member = { limit = { <triggers> } <effects> }
character character
every_concubine Iterate through all concubines
every_concubine = { limit = { <triggers> } <effects> }
character character
every_consort Iterate through all consorts (concubines and spouses)
every_consort = { limit = { <triggers> } <effects> }
character character
every_councillor Iterate through all councillors
every_councillor = { limit = { <triggers> } <effects> }
character character
every_court_position_employer Iterates through all characters that employ the scoped character in any court position.
every_court_position_employer = { limit = { <triggers> } <effects> }
character character
every_court_position_holder Iterates through all characters employed by the scoped character in the target court position.
every_court_position_holder = { limit = { <triggers> } <effects> }
character character
every_courtier Iterate through all courtiers
every_courtier = { limit = { <triggers> } <effects> }
character character
every_courtier_away Iterate through all courtiers that are away
every_courtier_away = { limit = { <triggers> } <effects> }
character character
every_courtier_or_guest Iterate through all courtiers and guests (pool and foreign court guests)
every_courtier_or_guest = { limit = { <triggers> } <effects> }
character character
every_de_jure_claim Iterate through all de jure claims for a character
every_de_jure_claim = { limit = { <triggers> } <effects> }
character landed title
every_diplomacy_councillor Iterate through all diplomacy-based councillors
every_diplomacy_councillor = { limit = { <triggers> } <effects> }
character character
every_directly_owned_province Iterate through all directly owned provinces
every_directly_owned_province = { limit = { <triggers> } <effects> }
character province
every_election_title Iterate through all titles the scoped character can vote on
every_election_title = { limit = { <triggers> } <effects> }
character landed title
every_equipped_character_artifact Iterate through all equipped artifacts in a given characters inventory
every_equipped_character_artifact = { limit = { <triggers> } <effects> }
character artifact
every_extended_family_member Iterate through all the extended family [uncles/aunts, nephew/niece, cousins]
every_extended_family_member = { limit = { <triggers> } <effects> }
character character
every_foreign_court_guest Iterate through all guests visiting from another court (in contrast to pool_guest they have a liege)
every_foreign_court_guest = { limit = { <triggers> } <effects> }
character character
every_former_concubine Iterate through all former concubines. Not persisted past death
every_former_concubine = { limit = { <triggers> } <effects> }
character character
every_former_concubinist Iterate through all former concubinists. Not persisted past death
every_former_concubinist = { limit = { <triggers> } <effects> }
character character
every_former_spouse Iterate through all former spouses
every_former_spouse = { limit = { <triggers> } <effects> }
character character
every_general_councillor Iterate through all councillors that are not related to a skill
every_general_councillor = { limit = { <triggers> } <effects> }
character character
every_heir Heirs of the scoped character
every_heir = { limit = { <triggers> } <effects> }
character character
every_heir_title Iterate through all landed titles character is heir to
every_heir_title = { limit = { <triggers> } <effects> }
character landed title
every_heir_to_title Iterate through all titles the scoped character is heir to
every_heir_to_title = { limit = { <triggers> } <effects> }
character landed title
every_held_title Iterate through all held landed titles
every_held_title = { limit = { <triggers> } <effects> }
character landed title
every_hired_mercenary Iterate through all hired mercenary companies
every_hired_mercenary = { limit = { <triggers> } <effects> }
character mercenary company
every_hooked_character Iterate through all characters this character has a hook on
every_hooked_character = { limit = { <triggers> } <effects> }
character character
every_hostile_raider Iterate through anyone the character is hostile to due to their top-liege's realm having been raided
every_hostile_raider = { limit = { <triggers> } <effects> }
character character
every_intrigue_councillor Iterate through all intrigue-based councillors
every_intrigue_councillor = { limit = { <triggers> } <effects> }
character character
every_knight Iterate through all knights
every_knight = { limit = { <triggers> } <effects> }
character character
every_known_secret Iterate through all secrets known by the character
every_known_secret = { limit = { <triggers> } <effects> }
character secret
every_learning_councillor Iterate through all learning-based councillors
every_learning_councillor = { limit = { <triggers> } <effects> }
character character
every_liege_or_above Iterate through all lieges above a character (skipping the character themselves)
every_liege_or_above = { limit = { <triggers> } <effects> }
character character
every_martial_councillor Iterate through all martial-based councillors
every_martial_councillor = { limit = { <triggers> } <effects> }
character character
every_neighboring_and_across_water_realm_same_rank_owner A sub-realm or realm bordering the scope character's realm (including across water) and has the same rank as the scope character (look for lieges of he owner of the land if necessary)
every_neighboring_and_across_water_realm_same_rank_owner = { limit = { <triggers> } <effects> }
character character
every_neighboring_and_across_water_top_liege_realm A realm with a different top liege neighboring the realm of the scope character's top liege (including across water); switches to the realm's top title. Can be based on borders a day or two out of date
every_neighboring_and_across_water_top_liege_realm = { limit = { <triggers> } <effects> }
character landed title
every_neighboring_and_across_water_top_liege_realm_owner A realm with a different top liege neighboring the realm of the scope character's top liege (including across water); switches to the holder of the realm. Can be based on borders a day or two out of date
every_neighboring_and_across_water_top_liege_realm_owner = { limit = { <triggers> } <effects> }
character character
every_neighboring_realm_same_rank_owner A sub-realm or realm bordering the scope character's realm and has the same rank as the scope character (look for lieges of he owner of the land if necessary)
every_neighboring_realm_same_rank_owner = { limit = { <triggers> } <effects> }
character character
every_neighboring_top_liege_realm A realm with a different top liege neighboring the realm of the scope character's top liege; switches to the realm's top title. Can be based on borders a day or two out of date
every_neighboring_top_liege_realm = { limit = { <triggers> } <effects> }
character landed title
every_neighboring_top_liege_realm_owner A realm with a different top liege neighboring the realm of the scope character's top liege; switches to the holder of the realm. Can be based on borders a day or two out of date
every_neighboring_top_liege_realm_owner = { limit = { <triggers> } <effects> }
character character
every_opposite_sex_spouse_candidate Iterate through all the spouse candidates of the opposite sex of a character.
WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
every_opposite_sex_spouse_candidate = { limit = { <triggers> } <effects> }
character character
every_owned_story Iterate through all owned stories for a character
every_owned_story = { limit = { <triggers> } <effects> }
character story cycle
every_parent Iterate through all (both) parents
every_parent = { limit = { <triggers> } <effects> }
character character
every_patroned_holy_order Iterate through all holy orders that the scoped character is a patron of
every_patroned_holy_order = { limit = { <triggers> } <effects> }
character holy order
every_personal_claimed_artifact Iterate through all personally claimed artifacts of the scoped character
every_personal_claimed_artifact = { limit = { <triggers> } <effects> }
character artifact
every_pinned_character Iterate through characters this player has pinned
every_pinned_character = { limit = { <triggers> } <effects> }
character character
every_pinning_character Iterate through characters whose player has this character pinned
every_pinning_character = { limit = { <triggers> } <effects> }
character character
every_played_character Iterate through all characters the player playing this character has played. Matches the game over legacy, except for excluding the currently played character
every_played_character = { limit = { <triggers> } <effects> }
character character
every_player_heir Iterate through player heirs, capped at the first 10
every_player_heir = { limit = { <triggers> } <effects> }
character character
every_pool_guest Iterate through all guests visiting the court from the pool (in contrast to foreign_court_guest they don't have a liege)
every_pool_guest = { limit = { <triggers> } <effects> }
character character
every_potential_marriage_option Iterate through all potential selectable marriage or betrohed options
every_potential_marriage_option = { limit = { <triggers> } <effects> }
character character
every_pretender_title Iterate through all landed titles character is pretender to
every_pretender_title = { limit = { <triggers> } <effects> }
character landed title
every_primary_war_enemy Iterate through all primary war enemies
every_primary_war_enemy = { limit = { <triggers> } <effects> }
character character
every_prisoner Iterate through all prisoners
every_prisoner = { limit = { <triggers> } <effects> }
character character
every_prowess_councillor Iterate through all prowess-based councillors
every_prowess_councillor = { limit = { <triggers> } <effects> }
character character
every_raid_target Iterate through anyone the character is hostile to due to having raided them. Only returns top lieges
every_raid_target = { limit = { <triggers> } <effects> }
character character
every_realm_county Iterate through all counties in the realm. Based on top liege
every_realm_county = { limit = { <triggers> } <effects> }
character landed title
every_realm_de_jure_duchy Iterate through all de jure duchies that have at least one county in the realm. Based on top liege
every_realm_de_jure_duchy = { limit = { <triggers> } <effects> }
character landed title
every_realm_de_jure_empire Iterate through all de jure empire that have at least one county in the realm. Based on top liege
every_realm_de_jure_empire = { limit = { <triggers> } <effects> }
character landed title
every_realm_de_jure_kingdom Iterate through all de jure kingdom that have at least one county in the realm. Based on top liege
every_realm_de_jure_kingdom = { limit = { <triggers> } <effects> }
character landed title
every_realm_province Iterate through all realm provinces of a character
every_realm_province = { limit = { <triggers> } <effects> }
character province
every_relation Iterate through scripted relations of a given type or multiple types, if someone is multiple relations they will only be in the list once
every_relation = { limit = { <triggers> } <effects> }
character character
every_same_sex_spouse_candidate Iterate through all the spouse candidates of the same sex of a character.
WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
every_same_sex_spouse_candidate = { limit = { <triggers> } <effects> }
character character
every_scheme Iterate through all schemes owned by the character
every_scheme = { limit = { <triggers> } <effects> }
character scheme
every_secret Iterate through all secrets of the character
every_secret = { limit = { <triggers> } <effects> }
character secret
every_sibling Iterate through all siblings
every_sibling = { limit = { <triggers> } <effects> }
character character
every_sponsored_inspiration Iterate through all sponsored inspirations
every_sponsored_inspiration = { limit = { <triggers> } <effects> }
character inspiration
every_spouse Iterate through all spouses
every_spouse = { limit = { <triggers> } <effects> }
character character
every_spouse_candidate Iterate through all the spouse candidates of a character.
WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
every_spouse_candidate = { limit = { <triggers> } <effects> }
character character
every_stewardship_councillor Iterate through all stewardship-based councillors
every_stewardship_councillor = { limit = { <triggers> } <effects> }
character character
every_sub_realm_barony Iterate through all baronies in sub-realm
every_sub_realm_barony = { limit = { <triggers> } <effects> }
character landed title
every_sub_realm_county Iterate through all counties in sub-realm
every_sub_realm_county = { limit = { <triggers> } <effects> }
character landed title
every_sub_realm_duchy Iterate through all duchies in sub-realm
every_sub_realm_duchy = { limit = { <triggers> } <effects> }
character landed title
every_sub_realm_empire Iterate through all empires in sub-realm
every_sub_realm_empire = { limit = { <triggers> } <effects> }
character landed title
every_sub_realm_kingdom Iterate through all kingdoms in sub-realm
every_sub_realm_kingdom = { limit = { <triggers> } <effects> }
character landed title
every_sub_realm_title Iterate through all titles in sub-realm
every_sub_realm_title = { limit = { <triggers> } <effects> }
character landed title
every_targeting_faction Iterate through all factions targeting the scope character
every_targeting_faction = { limit = { <triggers> } <effects> }
character faction
every_targeting_scheme Iterate through all schemes targeting the character
every_targeting_scheme = { limit = { <triggers> } <effects> }
character scheme
every_targeting_secret Iterate through all secrets that target the specified scope
every_targeting_secret = { limit = { <triggers> } <effects> }
character secret
every_traveling_family_member Iterate though all characters that should travel with the scoped one (when moving between courts for instance); includes the scoped character
every_traveling_family_member = { limit = { <triggers> } <effects> }
character character
every_truce_holder Iterate through all characters that have a truce on this character
every_truce_holder = { limit = { <triggers> } <effects> }
character character
every_truce_target Iterate through all characters this character has a truce on
every_truce_target = { limit = { <triggers> } <effects> }
character character
every_unspent_known_secret Iterate through all unspent secrets known by the character
every_unspent_known_secret = { limit = { <triggers> } <effects> }
character secret
every_vassal Iterate through all DIRECT vassals
every_vassal = { limit = { <triggers> } <effects> }
character character
every_vassal_or_below Iterate through ALL vassals, not just direct vassals
every_vassal_or_below = { limit = { <triggers> } <effects> }
character character
every_war_ally Iterate through all direct war allies
every_war_ally = { limit = { <triggers> } <effects> }
character character
every_war_enemy Iterate through all direct war enemies
every_war_enemy = { limit = { <triggers> } <effects> }
character character
execute_decision Execute the specified decision for the scoped character

character
finish_council_task The councillor finish the current assigned task successfully.

character
fire_councillor The scope character fires the target character form teh council.

character character
forbid_from_scheme Forbid the scope character from joining the target scheme as an agent (and kick the character out if already in the scheme)

character scheme
force_add_to_scheme Adds a character as an agent to the scheme and forces them to stay
{
    scheme = target_Scheme
    days/months/years = duration
}
character
force_character_skill_recalculation Forces a character's skills to be recalculated immediately, bypassing the wait for the daily tick.
NOTE: Only use this when *absolutely* necessary, as it will impact performance negatively if misused
   Usage: force_character_skill_recalculation = yes/no
character
force_vote_as Forces the character to vote the same as the target
force_vote_as = { target = someone days/months/years = x }
character
get_title gives a title to a character

character landed title
give_nickname Give a nickname to this character

character
imprison Imprisons the target character as this character's prisoner, imprison = { target = X reason = Y type = Z }, where X is a character, Y is a flag, Z is a static modifier

character
join_faction the character in the scope joins the assigned faction

character faction
join_faction_forced the character in the scope is forced to join a faction by a character for a defined time,
join_faction_forced = {
    faction = X
    forced_by = Y
    days/months/years = duration
}
character
join_faction_skip_check the character in the scope joins the assigned faction skiping the can_character_join trigger

character faction
learn_court_language_of The character learns the court language of the target characterlearn_court_language_of = scope:target_character

character character
learn_language The character learns the languagelearn_language = language_norwegian

character
learn_language_of_culture The character learns the language of the target culturelearn_language_of_culture = scope:target_culture

character culture
leave_faction the charcter in the scope leaves the assigned faction

character faction
make_claim_strong makes a claim strong (character adds the claim if not having it already)

character landed title
make_claim_weak makes a claim weak (character adds the claim if not having it already)

character landed title
make_concubine Makes the target character a concubine of the scope character, the target should not be imprisoned

character character
make_pregnant makes a character pregnant
 father= 'the real father'
 number_of_children= X
 known_bastard=yes/no
character
make_pregnant_no_checks makes a character pregnant. Doesn't error on things like celibacy
 father= 'the real father'
 number_of_children= X
 known_bastard=yes/no
character
make_trait_active Activates an inactive trait. Tooltip will not be shown if the character cannot have the trait.

character
make_trait_active_force_tooltip Activates an inactive trait. Tooltip will be shown even if the character cannot have the trait.

character
make_trait_inactive Makes a current trait of a character inactive. Tooltip will not be shown if the character doesn't have the trait.

character
make_trait_inactive_force_tooltip Makes a current trait of a character inactive. Tooltip will be shown even if the character doesn't have the trait.

character
make_unprunable The scope character will no longer be prunable after their death. Use with care, as this will make everyone related to them unprunable too. So you should only use this if someone absolutely *needs* to stick around several years after their death. Example: make_unprunable = yes

character
marry Marries the scoped character to the target character.
marry = target
character character
marry_matrilineal Marries the scoped character to the target character matrilineally.
marry_matrilineal = target
character character
move_to_pool The scoped character (courtier or guest) leaves their current court and moves into the pool
scope:guest = { move_to_pool = yes }
character
move_to_pool_at The scoped character (courtier/guest/pool character) leaves their current court (if any) and moves into the pool of the specified province
scope:guest = { move_to_pool_at = scope:some_province }
character province
open_appoint_court_position_window Opens the appointment window for the specified court position with scoped character as liege

character
ordered_alert_creatable_title Iterate through all titles that can be created by the character. (only for alerts)
ordered_alert_creatable_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_alert_usurpable_title Iterate through all titles that can be usurped by the character. (only for alerts)
ordered_alert_usurpable_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_ally Iterate through all allies
ordered_ally = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_ancestor Iterate through all the ancestors of the scope character up to 5 generations
ordered_ancestor = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_army Iterate through all armies
ordered_army = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character army
ordered_character_artifact Iterate through all artifacts in a given characters inventory
ordered_character_artifact = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character artifact
ordered_character_struggle Iterate through all struggles that character is involved in.
ordered_character_struggle = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
Optional: Narrow down the involvement status *_character_struggle = { involvement = involved | interloper } 
character struggle
ordered_character_to_title_neighboring_and_across_water_county Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
ordered_character_to_title_neighboring_and_across_water_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_character_to_title_neighboring_and_across_water_duchy Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
ordered_character_to_title_neighboring_and_across_water_duchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_character_to_title_neighboring_and_across_water_empire Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
ordered_character_to_title_neighboring_and_across_water_empire = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_character_to_title_neighboring_and_across_water_kingdom Scopes from a character to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
ordered_character_to_title_neighboring_and_across_water_kingdom = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_character_to_title_neighboring_county Scopes from a character to a neighboring county (looking trough the de Jure lieges)
ordered_character_to_title_neighboring_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_character_to_title_neighboring_duchy Scopes from a character to a neighboring duchy (looking trough the de Jure lieges)
ordered_character_to_title_neighboring_duchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_character_to_title_neighboring_empire Scopes from a character to a neighboring empire (looking trough the de Jure lieges)
ordered_character_to_title_neighboring_empire = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_character_to_title_neighboring_kingdom Scopes from a character to a neighboring kingdom (looking trough the de Jure lieges)
ordered_character_to_title_neighboring_kingdom = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_character_war Wars of the scoped character
ordered_character_war = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character war
ordered_child Iterate through all children
ordered_child = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_claim Iterate through the titles of all claims held by a character; parameters: explicit = yes/no/all pressed = yes/no/all
ordered_claim = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_claimed_artifact Iterate through all claimed artifacts of the scoped character
ordered_claimed_artifact = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character artifact
ordered_close_family_member Iterate through all the close family [father, mother, siblings, children, grandparents]
ordered_close_family_member = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_close_or_extended_family_member Iterate through all the close and extended relatives [father, mother, siblings, children, grandparents, uncles/aunts, nephew/niece, cousins]
ordered_close_or_extended_family_member = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_concubine Iterate through all concubines
ordered_concubine = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_consort Iterate through all consorts (concubines and spouses)
ordered_consort = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_councillor Iterate through all councillors
ordered_councillor = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_court_position_employer Iterates through all characters that employ the scoped character in any court position.
ordered_court_position_employer = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_court_position_holder Iterates through all characters employed by the scoped character in the target court position.
ordered_court_position_holder = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_courtier Iterate through all courtiers
ordered_courtier = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_courtier_away Iterate through all courtiers that are away
ordered_courtier_away = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_courtier_or_guest Iterate through all courtiers and guests (pool and foreign court guests)
ordered_courtier_or_guest = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_de_jure_claim Iterate through all de jure claims for a character
ordered_de_jure_claim = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_diplomacy_councillor Iterate through all diplomacy-based councillors
ordered_diplomacy_councillor = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_directly_owned_province Iterate through all directly owned provinces
ordered_directly_owned_province = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character province
ordered_election_title Iterate through all titles the scoped character can vote on
ordered_election_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_equipped_character_artifact Iterate through all equipped artifacts in a given characters inventory
ordered_equipped_character_artifact = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character artifact
ordered_extended_family_member Iterate through all the extended family [uncles/aunts, nephew/niece, cousins]
ordered_extended_family_member = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_foreign_court_guest Iterate through all guests visiting from another court (in contrast to pool_guest they have a liege)
ordered_foreign_court_guest = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_former_concubine Iterate through all former concubines. Not persisted past death
ordered_former_concubine = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_former_concubinist Iterate through all former concubinists. Not persisted past death
ordered_former_concubinist = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_former_spouse Iterate through all former spouses
ordered_former_spouse = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_general_councillor Iterate through all councillors that are not related to a skill
ordered_general_councillor = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_heir Heirs of the scoped character
ordered_heir = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_heir_title Iterate through all landed titles character is heir to
ordered_heir_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_heir_to_title Iterate through all titles the scoped character is heir to
ordered_heir_to_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_held_title Iterate through all held landed titles
ordered_held_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_hired_mercenary Iterate through all hired mercenary companies
ordered_hired_mercenary = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character mercenary company
ordered_hooked_character Iterate through all characters this character has a hook on
ordered_hooked_character = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_hostile_raider Iterate through anyone the character is hostile to due to their top-liege's realm having been raided
ordered_hostile_raider = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_intrigue_councillor Iterate through all intrigue-based councillors
ordered_intrigue_councillor = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_knight Iterate through all knights
ordered_knight = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_known_secret Iterate through all secrets known by the character
ordered_known_secret = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character secret
ordered_learning_councillor Iterate through all learning-based councillors
ordered_learning_councillor = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_liege_or_above Iterate through all lieges above a character (skipping the character themselves)
ordered_liege_or_above = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_martial_councillor Iterate through all martial-based councillors
ordered_martial_councillor = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_neighboring_and_across_water_realm_same_rank_owner A sub-realm or realm bordering the scope character's realm (including across water) and has the same rank as the scope character (look for lieges of he owner of the land if necessary)
ordered_neighboring_and_across_water_realm_same_rank_owner = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_neighboring_and_across_water_top_liege_realm A realm with a different top liege neighboring the realm of the scope character's top liege (including across water); switches to the realm's top title. Can be based on borders a day or two out of date
ordered_neighboring_and_across_water_top_liege_realm = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_neighboring_and_across_water_top_liege_realm_owner A realm with a different top liege neighboring the realm of the scope character's top liege (including across water); switches to the holder of the realm. Can be based on borders a day or two out of date
ordered_neighboring_and_across_water_top_liege_realm_owner = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_neighboring_realm_same_rank_owner A sub-realm or realm bordering the scope character's realm and has the same rank as the scope character (look for lieges of he owner of the land if necessary)
ordered_neighboring_realm_same_rank_owner = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_neighboring_top_liege_realm A realm with a different top liege neighboring the realm of the scope character's top liege; switches to the realm's top title. Can be based on borders a day or two out of date
ordered_neighboring_top_liege_realm = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_neighboring_top_liege_realm_owner A realm with a different top liege neighboring the realm of the scope character's top liege; switches to the holder of the realm. Can be based on borders a day or two out of date
ordered_neighboring_top_liege_realm_owner = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_opposite_sex_spouse_candidate Iterate through all the spouse candidates of the opposite sex of a character.
WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
ordered_opposite_sex_spouse_candidate = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_owned_story Iterate through all owned stories for a character
ordered_owned_story = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character story cycle
ordered_parent Iterate through all (both) parents
ordered_parent = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_patroned_holy_order Iterate through all holy orders that the scoped character is a patron of
ordered_patroned_holy_order = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character holy order
ordered_personal_claimed_artifact Iterate through all personally claimed artifacts of the scoped character
ordered_personal_claimed_artifact = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character artifact
ordered_pinned_character Iterate through characters this player has pinned
ordered_pinned_character = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_pinning_character Iterate through characters whose player has this character pinned
ordered_pinning_character = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_played_character Iterate through all characters the player playing this character has played. Matches the game over legacy, except for excluding the currently played character
ordered_played_character = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_player_heir Iterate through player heirs, capped at the first 10
ordered_player_heir = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_pool_guest Iterate through all guests visiting the court from the pool (in contrast to foreign_court_guest they don't have a liege)
ordered_pool_guest = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_potential_marriage_option Iterate through all potential selectable marriage or betrohed options
ordered_potential_marriage_option = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_pretender_title Iterate through all landed titles character is pretender to
ordered_pretender_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_primary_war_enemy Iterate through all primary war enemies
ordered_primary_war_enemy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_prisoner Iterate through all prisoners
ordered_prisoner = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_prowess_councillor Iterate through all prowess-based councillors
ordered_prowess_councillor = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_raid_target Iterate through anyone the character is hostile to due to having raided them. Only returns top lieges
ordered_raid_target = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_realm_county Iterate through all counties in the realm. Based on top liege
ordered_realm_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_realm_de_jure_duchy Iterate through all de jure duchies that have at least one county in the realm. Based on top liege
ordered_realm_de_jure_duchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_realm_de_jure_empire Iterate through all de jure empire that have at least one county in the realm. Based on top liege
ordered_realm_de_jure_empire = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_realm_de_jure_kingdom Iterate through all de jure kingdom that have at least one county in the realm. Based on top liege
ordered_realm_de_jure_kingdom = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_realm_province Iterate through all realm provinces of a character
ordered_realm_province = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character province
ordered_relation Iterate through scripted relations of a given type or multiple types, if someone is multiple relations they will only be in the list once
ordered_relation = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_same_sex_spouse_candidate Iterate through all the spouse candidates of the same sex of a character.
WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
ordered_same_sex_spouse_candidate = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_scheme Iterate through all schemes owned by the character
ordered_scheme = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character scheme
ordered_secret Iterate through all secrets of the character
ordered_secret = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character secret
ordered_sibling Iterate through all siblings
ordered_sibling = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_sponsored_inspiration Iterate through all sponsored inspirations
ordered_sponsored_inspiration = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character inspiration
ordered_spouse Iterate through all spouses
ordered_spouse = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_spouse_candidate Iterate through all the spouse candidates of a character.
WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
ordered_spouse_candidate = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_stewardship_councillor Iterate through all stewardship-based councillors
ordered_stewardship_councillor = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_sub_realm_barony Iterate through all baronies in sub-realm
ordered_sub_realm_barony = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_sub_realm_county Iterate through all counties in sub-realm
ordered_sub_realm_county = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_sub_realm_duchy Iterate through all duchies in sub-realm
ordered_sub_realm_duchy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_sub_realm_empire Iterate through all empires in sub-realm
ordered_sub_realm_empire = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_sub_realm_kingdom Iterate through all kingdoms in sub-realm
ordered_sub_realm_kingdom = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_sub_realm_title Iterate through all titles in sub-realm
ordered_sub_realm_title = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character landed title
ordered_targeting_faction Iterate through all factions targeting the scope character
ordered_targeting_faction = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character faction
ordered_targeting_scheme Iterate through all schemes targeting the character
ordered_targeting_scheme = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character scheme
ordered_targeting_secret Iterate through all secrets that target the specified scope
ordered_targeting_secret = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character secret
ordered_traveling_family_member Iterate though all characters that should travel with the scoped one (when moving between courts for instance); includes the scoped character
ordered_traveling_family_member = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_truce_holder Iterate through all characters that have a truce on this character
ordered_truce_holder = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_truce_target Iterate through all characters this character has a truce on
ordered_truce_target = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_unspent_known_secret Iterate through all unspent secrets known by the character
ordered_unspent_known_secret = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character secret
ordered_vassal Iterate through all DIRECT vassals
ordered_vassal = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_vassal_or_below Iterate through ALL vassals, not just direct vassals
ordered_vassal_or_below = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_war_ally Iterate through all direct war allies
ordered_war_ally = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
ordered_war_enemy Iterate through all direct war enemies
ordered_war_enemy = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
character character
pay_long_term_gold the scope character pays gold to the target character, pay_gold = { target = X gold = Y } (AI budget category long term)

character
pay_long_term_income the scope character immediately pays gold corresponding to their income to the target character, pay_income = { target = X days/months/years = Y } (AI budget long term)

character
pay_short_term_gold the scope character pays gold to the target character, pay_gold = { target = X gold = Y } (AI budget category short term)

character
pay_short_term_income the scope character immediately pays gold corresponding to their income to the target character, pay_income = { target = X days/months/years = Y } (AI budget short term)

character
play_music_cue Plays the specified music cue.

character
play_sound_effect Plays the specified sound effect.

character
random_alert_creatable_title Iterate through all titles that can be created by the character. (only for alerts)
random_alert_creatable_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_alert_usurpable_title Iterate through all titles that can be usurped by the character. (only for alerts)
random_alert_usurpable_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_ally Iterate through all allies
random_ally = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_ancestor Iterate through all the ancestors of the scope character up to 5 generations
random_ancestor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_army Iterate through all armies
random_army = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character army
random_character_artifact Iterate through all artifacts in a given characters inventory
random_character_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character artifact
random_character_struggle Iterate through all struggles that character is involved in.
random_character_struggle = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
Optional: Narrow down the involvement status *_character_struggle = { involvement = involved | interloper }
character struggle
random_character_to_title_neighboring_and_across_water_county Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
random_character_to_title_neighboring_and_across_water_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_character_to_title_neighboring_and_across_water_duchy Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
random_character_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_character_to_title_neighboring_and_across_water_empire Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
random_character_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_character_to_title_neighboring_and_across_water_kingdom Scopes from a character to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
random_character_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_character_to_title_neighboring_county Scopes from a character to a neighboring county (looking trough the de Jure lieges)
random_character_to_title_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_character_to_title_neighboring_duchy Scopes from a character to a neighboring duchy (looking trough the de Jure lieges)
random_character_to_title_neighboring_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_character_to_title_neighboring_empire Scopes from a character to a neighboring empire (looking trough the de Jure lieges)
random_character_to_title_neighboring_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_character_to_title_neighboring_kingdom Scopes from a character to a neighboring kingdom (looking trough the de Jure lieges)
random_character_to_title_neighboring_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_character_war Wars of the scoped character
random_character_war = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character war
random_child Iterate through all children
random_child = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_claim Iterate through the titles of all claims held by a character; parameters: explicit = yes/no/all pressed = yes/no/all
random_claim = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_claimed_artifact Iterate through all claimed artifacts of the scoped character
random_claimed_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character artifact
random_close_family_member Iterate through all the close family [father, mother, siblings, children, grandparents]
random_close_family_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_close_or_extended_family_member Iterate through all the close and extended relatives [father, mother, siblings, children, grandparents, uncles/aunts, nephew/niece, cousins]
random_close_or_extended_family_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_concubine Iterate through all concubines
random_concubine = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_consort Iterate through all consorts (concubines and spouses)
random_consort = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_councillor Iterate through all councillors
random_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_court_position_employer Iterates through all characters that employ the scoped character in any court position.
random_court_position_employer = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_court_position_holder Iterates through all characters employed by the scoped character in the target court position.
random_court_position_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_courtier Iterate through all courtiers
random_courtier = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_courtier_away Iterate through all courtiers that are away
random_courtier_away = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_courtier_or_guest Iterate through all courtiers and guests (pool and foreign court guests)
random_courtier_or_guest = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_de_jure_claim Iterate through all de jure claims for a character
random_de_jure_claim = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_diplomacy_councillor Iterate through all diplomacy-based councillors
random_diplomacy_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_directly_owned_province Iterate through all directly owned provinces
random_directly_owned_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character province
random_election_title Iterate through all titles the scoped character can vote on
random_election_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_equipped_character_artifact Iterate through all equipped artifacts in a given characters inventory
random_equipped_character_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character artifact
random_extended_family_member Iterate through all the extended family [uncles/aunts, nephew/niece, cousins]
random_extended_family_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_foreign_court_guest Iterate through all guests visiting from another court (in contrast to pool_guest they have a liege)
random_foreign_court_guest = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_former_concubine Iterate through all former concubines. Not persisted past death
random_former_concubine = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_former_concubinist Iterate through all former concubinists. Not persisted past death
random_former_concubinist = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_former_spouse Iterate through all former spouses
random_former_spouse = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_general_councillor Iterate through all councillors that are not related to a skill
random_general_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_heir Heirs of the scoped character
random_heir = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_heir_title Iterate through all landed titles character is heir to
random_heir_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_heir_to_title Iterate through all titles the scoped character is heir to
random_heir_to_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_held_title Iterate through all held landed titles
random_held_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_hired_mercenary Iterate through all hired mercenary companies
random_hired_mercenary = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character mercenary company
random_hooked_character Iterate through all characters this character has a hook on
random_hooked_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_hostile_raider Iterate through anyone the character is hostile to due to their top-liege's realm having been raided
random_hostile_raider = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_intrigue_councillor Iterate through all intrigue-based councillors
random_intrigue_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_knight Iterate through all knights
random_knight = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_known_secret Iterate through all secrets known by the character
random_known_secret = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character secret
random_learning_councillor Iterate through all learning-based councillors
random_learning_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_liege_or_above Iterate through all lieges above a character (skipping the character themselves)
random_liege_or_above = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_martial_councillor Iterate through all martial-based councillors
random_martial_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_neighboring_and_across_water_realm_same_rank_owner A sub-realm or realm bordering the scope character's realm (including across water) and has the same rank as the scope character (look for lieges of he owner of the land if necessary)
random_neighboring_and_across_water_realm_same_rank_owner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_neighboring_and_across_water_top_liege_realm A realm with a different top liege neighboring the realm of the scope character's top liege (including across water); switches to the realm's top title. Can be based on borders a day or two out of date
random_neighboring_and_across_water_top_liege_realm = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_neighboring_and_across_water_top_liege_realm_owner A realm with a different top liege neighboring the realm of the scope character's top liege (including across water); switches to the holder of the realm. Can be based on borders a day or two out of date
random_neighboring_and_across_water_top_liege_realm_owner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_neighboring_realm_same_rank_owner A sub-realm or realm bordering the scope character's realm and has the same rank as the scope character (look for lieges of he owner of the land if necessary)
random_neighboring_realm_same_rank_owner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_neighboring_top_liege_realm A realm with a different top liege neighboring the realm of the scope character's top liege; switches to the realm's top title. Can be based on borders a day or two out of date
random_neighboring_top_liege_realm = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_neighboring_top_liege_realm_owner A realm with a different top liege neighboring the realm of the scope character's top liege; switches to the holder of the realm. Can be based on borders a day or two out of date
random_neighboring_top_liege_realm_owner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_opposite_sex_spouse_candidate Iterate through all the spouse candidates of the opposite sex of a character.
WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
random_opposite_sex_spouse_candidate = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_owned_story Iterate through all owned stories for a character
random_owned_story = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character story cycle
random_parent Iterate through all (both) parents
random_parent = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_patroned_holy_order Iterate through all holy orders that the scoped character is a patron of
random_patroned_holy_order = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character holy order
random_personal_claimed_artifact Iterate through all personally claimed artifacts of the scoped character
random_personal_claimed_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character artifact
random_pinned_character Iterate through characters this player has pinned
random_pinned_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_pinning_character Iterate through characters whose player has this character pinned
random_pinning_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_played_character Iterate through all characters the player playing this character has played. Matches the game over legacy, except for excluding the currently played character
random_played_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_player_heir Iterate through player heirs, capped at the first 10
random_player_heir = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_pool_guest Iterate through all guests visiting the court from the pool (in contrast to foreign_court_guest they don't have a liege)
random_pool_guest = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_potential_marriage_option Iterate through all potential selectable marriage or betrohed options
random_potential_marriage_option = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_pretender_title Iterate through all landed titles character is pretender to
random_pretender_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_primary_war_enemy Iterate through all primary war enemies
random_primary_war_enemy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_prisoner Iterate through all prisoners
random_prisoner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_prowess_councillor Iterate through all prowess-based councillors
random_prowess_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_raid_target Iterate through anyone the character is hostile to due to having raided them. Only returns top lieges
random_raid_target = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_realm_county Iterate through all counties in the realm. Based on top liege
random_realm_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_realm_de_jure_duchy Iterate through all de jure duchies that have at least one county in the realm. Based on top liege
random_realm_de_jure_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_realm_de_jure_empire Iterate through all de jure empire that have at least one county in the realm. Based on top liege
random_realm_de_jure_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_realm_de_jure_kingdom Iterate through all de jure kingdom that have at least one county in the realm. Based on top liege
random_realm_de_jure_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_realm_province Iterate through all realm provinces of a character
random_realm_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character province
random_relation Iterate through scripted relations of a given type or multiple types, if someone is multiple relations they will only be in the list once
random_relation = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_same_sex_spouse_candidate Iterate through all the spouse candidates of the same sex of a character.
WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
random_same_sex_spouse_candidate = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_scheme Iterate through all schemes owned by the character
random_scheme = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character scheme
random_secret Iterate through all secrets of the character
random_secret = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character secret
random_sibling Iterate through all siblings
random_sibling = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_sponsored_inspiration Iterate through all sponsored inspirations
random_sponsored_inspiration = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character inspiration
random_spouse Iterate through all spouses
random_spouse = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_spouse_candidate Iterate through all the spouse candidates of a character.
WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
random_spouse_candidate = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_stewardship_councillor Iterate through all stewardship-based councillors
random_stewardship_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_sub_realm_barony Iterate through all baronies in sub-realm
random_sub_realm_barony = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_sub_realm_county Iterate through all counties in sub-realm
random_sub_realm_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_sub_realm_duchy Iterate through all duchies in sub-realm
random_sub_realm_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_sub_realm_empire Iterate through all empires in sub-realm
random_sub_realm_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_sub_realm_kingdom Iterate through all kingdoms in sub-realm
random_sub_realm_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_sub_realm_title Iterate through all titles in sub-realm
random_sub_realm_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character landed title
random_targeting_faction Iterate through all factions targeting the scope character
random_targeting_faction = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character faction
random_targeting_scheme Iterate through all schemes targeting the character
random_targeting_scheme = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character scheme
random_targeting_secret Iterate through all secrets that target the specified scope
random_targeting_secret = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character secret
random_traveling_family_member Iterate though all characters that should travel with the scoped one (when moving between courts for instance); includes the scoped character
random_traveling_family_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_truce_holder Iterate through all characters that have a truce on this character
random_truce_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_truce_target Iterate through all characters this character has a truce on
random_truce_target = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_unspent_known_secret Iterate through all unspent secrets known by the character
random_unspent_known_secret = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character secret
random_vassal Iterate through all DIRECT vassals
random_vassal = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_vassal_or_below Iterate through ALL vassals, not just direct vassals
random_vassal_or_below = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_war_ally Iterate through all direct war allies
random_war_ally = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
random_war_enemy Iterate through all direct war enemies
random_war_enemy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
character character
recruit_courtier Recruits the target to become a courtier. Example scope:liege = { recruit_courtier = scope:new_courtier }

character character
refund_all_perks Refunds all perks of the character. Example: refund_all_perks = yes

character
refund_perks Refunds all perks of the RHS lifestyle. Example: refund_perks = intrigue_lifestyle

character
release_from_prison releases the character from the prison, imprison = X, where X is a boolean value

character
remove_all_character_modifier_instances Remove all instances of a modifier from a character
remove_all_character_modifier_instances = name
character
remove_character_flag removes a character flag

character
remove_character_modifier Remove a modifier from a character
remove_character_modifier = name
character
remove_claim removes an explicit (not from a living parent/grand parent) claim

character landed title
remove_concubine Removes the target character as a concubine of the scope character

character character
remove_courtier_or_guest Removes the target character (guest or courtier) from the scope character's court
scope:host = { remove_courtier_or_guest = scope:guest } # move to pool, staying in same province
scope:host = {
	remove_courtier_or_guest = {
		character = scope:guest
		new_location = scope:some_province # optionally specify a new location
	}
}
character character
remove_decision_cooldown Remove the cooldown on taking a decision for the scoped character
remove_decision_cooldown = decision_name
character
remove_hook Removes a hook on a character, remove_hook = { target = X, type = Y }, if type is specified, the hook will only be removed if it is of that type

character
remove_interaction_cooldown Remove the cooldown on using an interaction for the scoped character
remove_interaction_cooldown = interaction_name
character
remove_interaction_cooldown_against Remove the cooldown on using an interaction against the target character for the scoped character
remove_interaction_cooldown_against = { interaction = interaction_name target = character }
character
remove_localized_text Removes a piece of localized text from being stored on the character with a given key, you should do this whenever you are done with the custom text so as to not bloat saves
remove_localized_text = key
character
remove_long_term_gold removes gold from a character (AI's long term budget)

character
remove_nickname no]

character
remove_opinion Removes a temporary opinion modifier, remove_opinion = { target = X modifier = Y single = Z (no by default) } where X is a character, Y is the opinion modifier, Z tells whether to remove all instances of the modifier or just one

character
remove_perk Remove the perk for this character

character
remove_personal_artifact_claim Removes a personal claim on the target artifact from the scoped character

character artifact
remove_realm_law Removes the given law from the scoped character. This will leave the law group empty, so only do this if you're getting rid of a law group

character
remove_relation_antiquarian Removes scripted relationship

character character
remove_relation_best_friend Removes scripted relationship

character character
remove_relation_bully Removes scripted relationship

character character
remove_relation_court_physician Removes scripted relationship

character character
remove_relation_crush Removes scripted relationship

character character
remove_relation_flag Removed a flag from an existing relation flag = flag_name (declared in scripted_relation) target = other_character relation = scripted_relation

character
remove_relation_friend Removes scripted relationship

character character
remove_relation_guardian Removes scripted relationship

character character
remove_relation_intrigue_mentor Removes scripted relationship

character character
remove_relation_intrigue_student Removes scripted relationship

character character
remove_relation_lover Removes scripted relationship

character character
remove_relation_mentor Removes scripted relationship

character character
remove_relation_nemesis Removes scripted relationship

character character
remove_relation_oaf Removes scripted relationship

character character
remove_relation_potential_friend Removes scripted relationship

character character
remove_relation_potential_lover Removes scripted relationship

character character
remove_relation_potential_rival Removes scripted relationship

character character
remove_relation_rival Removes scripted relationship

character character
remove_relation_soldier_friend Removes scripted relationship

character character
remove_relation_soulmate Removes scripted relationship

character character
remove_relation_student Removes scripted relationship

character character
remove_relation_victim Removes scripted relationship

character character
remove_relation_ward Removes scripted relationship

character character
remove_scheme_cooldown_against Remove the cooldown on using a scheme against the target character for the scoped character
remove_scheme_cooldown_against = { scheme = scheme_name target = character }
character
remove_short_term_gold removes gold from a character (AI's short term budget)

character
remove_trait Removes a trait from a character. Tooltip will not be shown if the character doesn't have the trait.

character
remove_trait_force_tooltip Removes a trait from a character. Tooltip will be shown even if the character doesn't have the trait.

character
replace_court_position Replaces the target character holding target court position within scoped character's court with target character
recipient = character scope - target character to receive the title
holder = character scope - target character to revoke the target court position of in favour of recipient
court_position = court position type - court position type to assign the receiver
character
reset_beneficiary The target character stops having a beneficiary. reset_beneficiary = yes

character
return_to_court Returns the scope character to the employers court.

character
reverse_add_opinion Adds a temporary reverse opinion modifier, reverse_add_opinion = { modifier = X days/months/years = Y target = Z }
X is a scripted modifier name. Y can be a value or a range "{ A B }" If no timeout are specified, the modifier's scripted default timeout will be used.
character
revoke_court_position Revokes target position from scoped character.
court_position = court position type - court position type to revoke from scoped character's court
character
scriptedtests_recalculate_character_modifier Recalculates the modifier of the scoped character

character
scriptedtests_recalculate_succession Recalculates the line of succession of the scoped character

character
set_absolute_country_control Sets if this character has absolute country control, unlock_character_movement = yes/no/boolean event target

character
set_age Sets the character's age. Note that this will completely bypass birthday on-actions, age-related health, and so on, just like the console command
   Usage: set_age = script value
character
set_amenity_level set_amenity_level = { type = food value = 2 }
Sets the amenity type to the given value for the scoped character
character
set_beneficiary The target character becomes the beneficiary of the scoped character. set_beneficiary = some character

character character
set_character_faith Changes what faith a character has executing the effects for it. For history setup use 'set_character_faith_history' instead.

character faith
set_character_faith_history Changes what faith a character has NOT executing the effects for it. USE ONLY IN HISOTRY SETUP!

character faith
set_character_faith_with_conversion Changes what faith a character has, as if they used the faith-view interaction (minus the piety cost). So vassals who'd accept will get converted, as will capitals

character faith
set_child_of_concubine_on_pregnancy Sets the child to be (or not be) a child of a concubine during pregnancy

character
set_council_task Sets the task of the scope councillor { task_type = council_position_type_key target = for_targeted_tasks }

character
set_court_language Set the character's court language to the given languageset_court_language = language_norwegian

character
set_court_type Set the court type for this character's royal court

character
set_culture Set the culture for this character

character culture
set_culture_same_as sets the culture of the character to be the same as the culture of the target

character character
set_current_court_grandeur Sets the current court grandeur of a character with a royal court, clamped between NRoyalCourt::COURT_GRANDEUR_MIN and NRoyalCourt::COURT_GRANDEUR_MAX.
Does not apply a grace period, and removes any existing one.
character
set_death_reason set_death_reason = { killer = X death_reason = Y artifact = Z }
All parameters are optional. Sets the death reason, the killer, and artifact used in the death of a dead character
character
set_default_education Set the default education focus for this character

character
set_designated_heir Sets the given character as designated heir

character character
set_employer Add the scope character to the target character's court

character character
set_father sets the father of a character

character character
set_focus Set the focus for this character

character
set_house Sets the dynasty house of the character

character dynasty house
set_immortal_age Changes what age the character became immortal at. Only works if already immortal
set_immortal_age = 20
character
set_killer_public Sets the scoped character's killer as being publicly known
set_killer_public = bool
character
set_knight_status Sets the knight status of the character to Forced/Default/Disallowed

character
set_known_bastard_on_pregnancy Sets the child to a known or unknown bastard during pregnancy

character
set_mother Sets the mother of a character

character character
set_num_pregnancy_children Set the number of children

character
set_override_designated_winner The scoped character will put their beneficiary on the throne if they're the #1 participant if this is called with 'yes'. Call with 'no' to turn it off again. set_override_designate_winner = yes/no

character
set_player_character The scope character's player will now play as the target character. Scope must be player-controlled. Target cannot be player-controlled. Example:set_player_character = scope:title_recipient

character character
set_pregnancy_assumed_father Set the assumed father of the pregnancy

character character
set_primary_spouse Set the primary spouse of a character
set_primary_spouse = scope
character character
set_primary_title_to Sets the primary title for a character
set_primary_title_to = <title>
character landed title
set_real_father Changes the real father of the character scope

character character
set_realm_capital Set a new realm capital
character = { set_realm_capital = new_title }
character landed title
set_relation_antiquarian Sets scripted relationship

character character
set_relation_best_friend Sets scripted relationship

character character
set_relation_bully Sets scripted relationship

character character
set_relation_court_physician Sets scripted relationship

character character
set_relation_crush Sets scripted relationship

character character
set_relation_friend Sets scripted relationship

character character
set_relation_guardian Sets scripted relationship

character character
set_relation_intrigue_mentor Sets scripted relationship

character character
set_relation_intrigue_student Sets scripted relationship

character character
set_relation_lover Sets scripted relationship

character character
set_relation_mentor Sets scripted relationship

character character
set_relation_nemesis Sets scripted relationship

character character
set_relation_oaf Sets scripted relationship

character character
set_relation_potential_friend Sets scripted relationship

character character
set_relation_potential_lover Sets scripted relationship

character character
set_relation_potential_rival Sets scripted relationship

character character
set_relation_rival Sets scripted relationship

character character
set_relation_soldier_friend Sets scripted relationship

character character
set_relation_soulmate Sets scripted relationship

character character
set_relation_student Sets scripted relationship

character character
set_relation_victim Sets scripted relationship

character character
set_relation_ward Sets scripted relationship

character character
set_sexuality Sets the sexuality of the character

character
set_to_lowborn Set the character to lowborn

character
set_trait_rank Sets the trait rank = { trait = trait_group rank = new rank }

character
set_vassal_contract_modification_blocked Blocks the vassal contract from being modified with regards to being checked by 'vassal_contract_is_blocked_from_modification'

character
spawn_army Spawns an army for this character. If the character is not at war, the regiments will be created, but the army will not be spawned.
Usage:
spawn_army = {
	 levies = int/script value # optional, number of men
	 men_at_arms = { # optional, multiple can be specified. Need either levies or MAA
        type = key
        men/stacks = int/script value
    }
	 location = province
	 origin = province # optional, location used if not set. This is used for where to base bonuses and the like on
	 war = war # optional. If set, the stack will disband after the war ends
	 war_keep_on_attacker_victory = yes/no # Default: no. Tied to a war. Normally the stack will disband upon victory (if a war is specified), but this parameter prevents that from happening upon attacker victory
	 inheritable = yes/no # Default: yes
	 uses_supply = yes/no # Default: yes
	 army = army # optional. If set, the stack will merge into this army
    save_scope_as/save_temporary_scope_as = new_army # optional way to get a reference to the new army. Note this might not be set if the army wasn't spawned (e.g. if the character is not at war)
    name = description # gives the troops a specific name that shows up in interfaces
}
character
sponsor_inspiration sponsor_inspiration = inspiration
Sets the sponsor of the target inspiration to the scoped character
character inspiration
start_default_task Force the Councillor to revert to the default task. Any relevant percentage progress will be lost (even if the councillor was performing the default task already).

character
start_scheme starts a scheme = { type = X target = Y }

character
start_war starts a war = { casus_belli/cb = X target = Y claimant = Z target_title = W1 target_title = W2 ... } where X is a casus belli type, Y is the target character, Z i the (optional) claimant, W1, W2.... are targeted titles.
If there are no title targets, the effect will pick one of possible title targets.
character
store_localized_text_in_death Makes a piece of localized text with the given key be stored on the character even after death, you should use this sparingly to avoid save bloat and use 'remove_localized_text' if you no longer need itsaves
store_localized_text_in_death = key
character
stress_impact Stress impact according to specified traits (trait = value), use base = value for a base value that's always added

character
unlearn_court_language_of The character unlearns the court language of the target character. Cannot unlearn the language of your cultureunlearn_court_language_of = scope:target_character

character character
unlearn_language The character unlearns the language. Cannot unlearn the language of your cultureunlearn_language = language_norwegian

character
unlearn_language_of_culture The character unlearns the language of the target culture. Cannot unlearn the language of your cultureunlearn_language_of_culture = scope:target_culture

character culture
use_hook Uses a hook a character has (removes if weak, puts on cooldown if strong), use_hook = some_character

character character
vassal_contract_decrease_obligation_level decrease the obligation level of the scoped character's vassal contract

character
vassal_contract_increase_obligation_level increase the obligation level of the scoped character's vassal contract

character
vassal_contract_set_obligation_level change the obligation level of the scoped character's vassal contract
vassal_contract_set_obligation_level = { type = name level = 1 } # index to obligation level
vassal_contract_set_obligation_level = { type = name level = feudal_obligation_low }
character
visit_court_of Add the scope character as the target character's guest

character character
every_faith Iterate through all faiths within a religion
every_faith = { limit = { <triggers> } <effects> }
religion faith
ordered_faith Iterate through all faiths within a religion
ordered_faith = {
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = script_value
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
<effects> }
religion faith
random_faith Iterate through all faiths within a religion
random_faith = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
religion faith

Opinion Modifiers

In order to add an opinion modifier, a modifier must be defined inside a file under common/opinion_modifiers. A constant modifier looks like this:

custom_opinion_modifier_name = {
    opinion = 20
    imprisonment_reason = yes
    revoke_title_reason = yes
    banish_reason = yes
    execute_reason = yes
}

While a modifier that changes over time looks like this:

custom_opinion_modifier_name = {
    monthly_change = -.05
    decaying = yes
    max = 20
    stacking = yes
}

Other valid keys can be found by example in game/common/opinion_modifiers.


You will also want to add an entry to a localization file with the same name as the opinion modifier. This will show up as the description when an in-game tooltip is shown.