Effects:修订间差异

本页面所适用的版本可能已经过时,最后更新于1.7
(同步到官方百科13:44, 17 September 2020‎ Araxiel)
70讨论 | 贡献
(翻译完发现官网已经更到1.7了,重新实装后把翻好的转录进去)
 
(未显示4个用户的6个中间版本)
第1行: 第1行:
{{需要翻译}}{{Version|1.0}}
{{Version|1.7}}
Effects are used in order to affect the game dynamically from within scopes.
效果(Effects),也称为命令(commands),在脚本中用于更改通过范围和条件选择的目标。他们还能够遍历列表。
== List of Effects ==
 
Note that this list has been generated programmatically from the output of the "script_docs" console command. Using script_docs, effects supported from multiple scopes are given as being supported from "none" scope only, but this is probably not the case.
They appear in:
*command blocks (the ''immediate'' and ''option'' sections of [[events]], or similar: effect, creation_effect, gain_effect, success, ...)
*[[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. Also, any effect can be run in the console via the <code>effect</code> command.
 
Available effects depend on the current scope.
 
== 效果条件式 ==
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%" | Name
! width="15%" | 名称
! width="15%" | Description
! width="15%" | 描述
! width="25%" | Usage
! width="45%" | 样例
! width="20%" | Supported Scopes
! width="10%" | Supported scopes
! width="20%" | Supported Targets
! width="10%" | Supported targets
|-
|-
|add_dynasty_modifier
|if
|Add a modifier to a dynasty
| 如果满足if条件内容<triggers>,则会执行if描述的效果<effects>
|add_dynasty_modifier = name
|<pre>if = { limit = { <triggers> } <effects> }</pre>
add_dynasty_modifier = { modifier = name days/weeks/months/years = int }
|none
|dynasty
|
|
|-
|-
|add_dynasty_perk
|else_if
|Adds dynasty perk
| 如果满足if条件内容<triggers>,则会执行if描述的效果<effects> ,否则如果如果满足else_if条件内容<triggers>,则会执行else_if描述的效果<effects>
|add_dynasty_perk = key
|<pre>if = { limit = { <triggers> } <effects> }
|dynasty
else_if = { limit = { <triggers> } <effects> }</pre>
|none
|
|
|-
|-
|add_dynasty_prestige
|else
|adds dynasty prestige
| 如果满足if条件内容<triggers>,则会执行if描述的效果<effects> ,否则执行else描述的效果<effects>(该段括号内容为译者所加,鉴于ck3官网原文有些模糊,这里引用一下钢4wiki对效果条件式的描述:首先,limit是一个AND的触发器,也就是其中的所有条件都需要满足,如果limit中的内容没有满足,就开始检测else_if,直到else最后这个触发器(除非你没有写)。这其中的每一个触发器只要有一个触发器中的内容全部满足就会触发)
|Unspecified
|<pre>if = { limit = { <triggers> } <effects> }
|dynasty
else = { <effects> }</pre>
|none
|
|
|-
|-
|add_dynasty_prestige_level
| while
|adds dynasty prestige levels
| Repeats enclosed effects while limit criteria are met or until set iteration count is reached
|Unspecified
| <pre>while = {
|dynasty
   limit = { <triggers> }
|
   <effects>
}
while = { count = 3 <effects> }
Default max of 1000.</pre>
| none
|-
|-
|every_dynasty_member
| switch
|Iterate through all dynasty members
| Switch on a trigger for the evaluation of another trigger with an optional fallback trigger.
|every_dynasty_member = { limit = { <triggers> } <effects> }
| <pre>switch = {
|dynasty
trigger = simple_assign_trigger
|character
case_1 = { <effects> }
case_2 = { <effects> }
case_n = { <effects> }
fallback = { <effects> }
}</pre>
| none
|-
|-
|ordered_dynasty_member
| hidden_effect
|Iterate through all dynasty members
| Effect not shown in tooltips
|ordered_dynasty_member = {
| <pre>hidden_effect = { <effects> }</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> }
|dynasty
|character
|-
|-
|random_dynasty_member
| show_as_tooltip
|Iterate through all dynasty members
| Effect only shown in tooltips (but not executed)
|random_dynasty_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|dynasty
| none
|character
|-
|-
|remove_all_dynasty_modifier_instances
| random
|Remove all instances of a modifier from a dynasty
| a random effect
|remove_all_dynasty_modifier_instances = name
| <pre>random = { chance = X modifier = Y effects... }
|dynasty
where X is a chance of the enclosed effects being fired and can be modified by optional value modifier list (AKA MTTH) Y</pre>
|
| none
|-
|-
|remove_dynasty_modifier
| random_list
|Remove a modifier from a dynasty
| a random list effect
|remove_dynasty_modifier = name
| <pre>random_list = {
|dynasty
   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)</pre>
| none
|-
|-
|add_house_modifier
| custom_description
|Add a modifier to a house
| Wraps effects that get a custom description instead of the auto-generated one. See also custom_description_no_bullet.
|add_house_modifier = name
| <pre>custom_description = {
add_house_modifier = { modifier = name days/weeks/months/years = int }
text = <effect_localization_key>
|dynasty house
subject = <optional subject scope> #defaults to current scope
|
object = <optional object scope>
value = <optional script value>
... effects ...
}</pre>
| none
|-
|-
|every_house_member
| custom_tooltip
|Iterate through all house members
| just a tooltip, the scope as subject (for grouping, localization).
|every_house_member = { limit = { <triggers> } <effects> }
| <pre>custom_tooltip = { text = key subject = scope (optional) <hidden effects> }
|dynasty house
or just custom_tooltip = key</pre>
|character
| none
|-
|-
|ordered_house_member
| send_interface_message
|Iterate through all house members
| Sends a message to the player playing the character in the scope and then executes any effects inside.
|ordered_house_member = {
| <pre>For the message text and tooltip, $EFFECT$ contains the text description of the effects in the past tense.
limit = { <triggers> }
And $DESC$ contains the text from the desc field.
order_by = script_value
send_interface_message = {
position = int
type = message_type # default: send_interface_message
min = int
title = LOCALIZATION # optional, otherwise takes it from the message type
max = script_value
desc = LOCALIZATION # optional, otherwise takes it from the message type
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
tooltip = LOCALIZATION # optional, otherwise takes it from the message type
<effects> }
left_icon = scope:recipient # optional, character, artifact, or title
|dynasty house
right_icon = scope:the_title # optional, character, artifact, or title
|character
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
|-
|-
|random_house_member
| send_interface_toast
|Iterate through all house members
| Sends a message to the player playing the character in the scope and then executes any effects inside.
|random_house_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <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.
|character
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-->
|-
|-
|remove_all_house_modifier_instances
| add_long_term_gold
|Remove all instances of a modifier from a house
| Add gold to 'long term' AI budget category, respecting maximums, overflow goes into Short Term budget. (gold will be created out of nowhere)
|remove_all_house_modifier_instances = name
| <pre>add_long_term_gold = X</pre>
|dynasty house
| character
|
|
|-
|-
|remove_house_modifier
| add_reserved_gold
|Remove a modifier from a house
| Add gold to 'reserved' AI budget category, respecting maximums, overflow goes into Short Term budget. (gold will be created out of nowhere)
|remove_house_modifier = name
| <pre>add_reserved_gold = X</pre>
|dynasty house
| character
|
|
|-
|-
|every_faith
| add_short_term_gold
|Iterate through all faiths within a religion
| Add gold to 'short term' AI budget category, respecting maximums, overflow goes into Short Term budget. (gold will be created out of nowhere)
|every_faith = { limit = { <triggers> } <effects> }
| <pre>add_short_term_gold = X</pre>
|religion
| character
|faith
|
|-
|-
|ordered_faith
| add_war_chest_gold
|Iterate through all faiths within a religion
| Add gold to 'war chest' AI budget category, respecting maximums, overflow goes into Short Term budget. (gold will be created out of nowhere)
|ordered_faith = {
| <pre>add_war_chest_gold = X</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> }
|religion
|faith
|-
|-
|random_faith
| pay_reserved_gold
|Iterate through all faiths within a religion
| the scope character pays gold to the target character (from AI budget category 'reserved' first, then rest)
|random_faith = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>pay_reserved_gold = { target = X gold = Y }</pre>
|religion
| character
|faith
|
|-
|-
|add_scheme_modifier
| pay_reserved_income
|adds the specified scheme modifier, add_scheme_modifier = { type = X days = Y } (days are optional, the modifier will expire in Y days if specified)
| the scope character immediately pays gold corresponding to their income to the target character (AI budget 'reserved' first, then rest)
|Unspecified
| <pre>pay_reserved_income = { target = X days/months/years = Y }</pre>
|scheme
| character
|
|
|-
|-
|add_scheme_progress
| pay_war_chest_gold
|Add progress to the scope scheme. (progress is in 0.0 - 100.0 range)
| the scope character pays gold to the target character (from AI budget category 'war_chest' first, then rest)
|Unspecified
| <pre>pay_war_chest_gold = { target = X gold = Y }</pre>
|scheme
| character
|
|
|-
|-
|end_scheme
| pay_war_chest_income
|Ends a specific scheme and removes it without any other effect
| the scope character immediately pays gold corresponding to their income to the target character (AI budget 'war_chest' first, then rest)
|Unspecified
| <pre>pay_war_chest_income = { target = X days/months/years = Y }</pre>
|scheme
| character
|
|
|-
|-
|every_scheme_agent
| remove_reserved_gold
|Iterate through all agents in the scheme
| removes gold from a character (from AI's 'reserved' budget first, then rest)
|every_scheme_agent = { limit = { <triggers> } <effects> }
|
|scheme
| character
|character
|-
|expose_scheme
|Exposes the scheme to the defender
|Unspecified
|scheme
|
|
|-
|-
|expose_scheme_agent
| remove_war_chest_gold
|Exposes the target character as an agent of the current scheme
| removes gold from a character (from AI's 'war chest' budget first, then rest)
|Unspecified
|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
|Unspecified
|scheme
|
|
|-
| character
|scheme_freeze_days
|scheme_freeze_days = X freezes the scheme for X days (0 unfreezes the scheme)
|Unspecified
|scheme
|
|
|-
|-
|add_county_modifier
| create_character_memory
|Add a modifier to a county
| Creates a memory for the character of a given type and participants plus an optional duration. Saved as scope:new_memory.
|add_county_modifier = name
| <pre>create_character_memory = { type = memory_type participants = { tag = scope } duration = { years = 3 } }</pre>
add_county_modifier = { modifier = name days/weeks/months/years = int }
| character
|landed title
|
|
|-
|-
|change_county_control
| destroy_character_memory
|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.
| Destroys the targeted character memory, do not use the destroyed scope after calling this since it will have been removed
|Unspecified
| <pre>destroy_character_memory = character_memory</pre>
|landed title
| none
|
| character memory
|-
|-
|change_de_jure_drift_progress
| equip_artifact_to_owner
|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> } }
| Makes the owner of the scoped artifact equip it, will fail if there already is an equipment in the artifact's slot.
|Unspecified
|landed title
|
|
|-
| artifact
|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.
|Unspecified
|landed title
|
|
|-
|-
|change_development_progress
| equip_artifact_to_owner_replace
|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.
| Makes the owner of the scoped artifact equip it, will replace the first held artifact if all slots of its type are filled.
|Unspecified
|landed title
|
|
|-
| artifact
|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
|Unspecified
|landed title
|
|
|-
|-
|clear_title_laws
| unequip_artifact_from_owner
|remove all title laws from the scoped title. DOES NOT apply law removal costs and effects.
| Makes the owner of the scoped artifact unequip it.
|clear_title_laws = yes
|landed title
|
|
|-
| artifact
|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
| add_house_artifact_claim
|Copy title history from another title
| Adds a claim on the target artifact to the scoped house
|copy_title_history = source_title
| <pre></pre>
|landed title
| dynasty house
|landed title
| artifact
|-
|-
|every_claimant
| every_memory
|Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
| Iterate through all memories of a character
|every_claimant = { limit = { <triggers> } <effects> }
| <pre>every_memory = { limit = { <triggers> } <effects> }</pre>
|landed title
| character
|character
| character memory
|-
|-
|every_connected_county
| every_memory_participant
|Iterate through all counties connected to this one. Is based on top liege
| Iterate through all participating character of a memory
|every_connected_county = {
| <pre>every_memory_participant = { limit = { <triggers> } <effects> }</pre>
max_naval_distance = 500
| character memory
allow_one_county_land_gap = yes
| character
every_connected_county = { limit = { <triggers> } <effects> }
|landed title
|landed title
|-
|-
|every_county_province
| every_powerful_vassal
|Iterate through all provinces in a county
| Iterate through the all powerful vassals of a character
|every_county_province = { limit = { <triggers> } <effects> }
| <pre>every_powerful_vassal = { limit = { <triggers> } <effects> }</pre>
|landed title
| character
|province
| character
|-
|-
|every_de_jure_county_holder
| move_budget_gold
|Iterate through all characters directly holding counties within this dejure title
| 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
|every_de_jure_county_holder = { limit = { <triggers> } <effects> }
| <pre>move_budget_gold = { gold = X from = Z to = Y }
|landed title
('budget_war_chest', 'budget_reserved', 'budget_short_term', 'budget_long_term')</pre>
|character
| character
|
|-
|-
|every_de_jure_top_liege
| set_reserved_gold_maximum
|Iterate through all top lieges of the counts within this dejure title
| 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.
|every_de_jure_top_liege = { limit = { <triggers> } <effects> }
| <pre>set_reserved_gold_maximum = X</pre>
|landed title
| character
|character
|
|-
|-
|every_dejure_vassal_title_holder
| ordered_memory
|Iterate through all the vassal holders of the title
| Iterate through all memories of a character
|every_dejure_vassal_title_holder = { limit = { <triggers> } <effects> }
| <pre>ordered_memory = {
|landed title
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>
| character
| character memory
|-
|-
|every_election_candidate
| ordered_memory_participant
|Iterate through all characters who are valid candidates in an election for a title
| Iterate through all participating character of a memory
|every_election_candidate = { limit = { <triggers> } <effects> }
| <pre>ordered_memory_participant = {
|landed title
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>
| character memory
| character
|-
|-
|every_elector
| ordered_powerful_vassal
|Iterate through all characters who are valid electors in an election for a title
| Iterate through the all powerful vassals of a character
|every_elector = { limit = { <triggers> } <effects> }
| <pre>ordered_powerful_vassal = {
|landed title
limit = { <triggers> }
|character
order_by = script_value
|-
position = int
|every_in_de_facto_hierarchy
min = int
|Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
max = script_value
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 } }
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|every_in_de_facto_hierarchy = { limit = { <triggers> } <effects> }
<effects> }</pre>
|landed title
| character
|landed title
| character
|-
|-
|every_in_de_jure_hierarchy
| random_memory
|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 all memories of a character
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 } }
| <pre>random_memory = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|every_in_de_jure_hierarchy = { limit = { <triggers> } <effects> }
| character
|landed title
| character memory
|landed title
|-
|-
|every_neighboring_county
| random_memory_participant
|Iterate through all neighboring counties. Can only be used in county scope
| Iterate through all participating character of a memory
|every_neighboring_county = { limit = { <triggers> } <effects> }
| <pre>random_memory_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|landed title
| character memory
|landed title
| character
|-
|-
|every_this_title_or_de_jure_above
| random_powerful_vassal
|Iterate through this title and all its dejure liege titles
| Iterate through the all powerful vassals of a character
|every_this_title_or_de_jure_above = { limit = { <triggers> } <effects> }
| <pre>random_powerful_vassal = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|landed title
| character
|landed title
| character
|-
|-
|every_title_heir
| set_house_name_from_dynasty
|Line of succession for the scoped title
| Sets dynasty house name from another dynasty's name
|every_title_heir = { limit = { <triggers> } <effects> }
| <pre>set_house_name_from_dynasty = dynasty</pre>
|landed title
| dynasty house
|character
| dynasty
|-
|-
|every_title_joined_faction
| set_house_name_from_house
|Iterate through all factions joined the scope landed title
| Sets dynasty house name from another dynasty house's name
|every_title_joined_faction = { limit = { <triggers> } <effects> }
| <pre>set_house_name_from_house = house</pre>
|landed title
| dynasty house
|faction
| dynasty house
|-
|-
|every_title_to_title_neighboring_and_across_water_barony
| add_house_modifier
|Scopes from a title to a neighboring barony (incl. across water, looking trough the de Jure lieges)
| Add a modifier to a house
|every_title_to_title_neighboring_and_across_water_barony = { limit = { <triggers> } <effects> }
| <pre>add_house_modifier = name
|landed title
add_house_modifier = { modifier = name days/weeks/months/years = int }
|landed title
You can also add an optional 'desc' field. This is a dynamic description that'll be used for your timed modifier</pre>
| dynasty house
|-
|-
|every_title_to_title_neighboring_and_across_water_county
| every_house_claimed_artifact
|Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
| Iterate through all claimed artifacts of the scoped house
|every_title_to_title_neighboring_and_across_water_county = { limit = { <triggers> } <effects> }
| <pre>every_house_claimed_artifact = { limit = { <triggers> } <effects> }</pre>
|landed title
| dynasty house
|landed title
| artifact
|-
|-
|every_title_to_title_neighboring_and_across_water_duchy
| every_house_member
|Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| Iterate through all house members
|every_title_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } <effects> }
| <pre>every_house_member = { limit = { <triggers> } <effects> }</pre>
|landed title
| dynasty house
|landed title
| character
|-
|-
|every_title_to_title_neighboring_and_across_water_empire
| ordered_house_claimed_artifact
|Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| Iterate through all claimed artifacts of the scoped house
|every_title_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } <effects> }
| <pre>ordered_house_claimed_artifact = {
|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_barony
|Scopes from a title to a neighboring barony (looking trough the de Jure lieges)
|every_title_to_title_neighboring_barony = { 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
|
|-
|ordered_claimant
|Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
|ordered_claimant = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第427行: 第387行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| dynasty house
|character
| artifact
|-
|-
|ordered_connected_county
| ordered_house_member
|Iterate through all counties connected to this one. Is based on top liege
| Iterate through all house members
|ordered_connected_county = {
| <pre>ordered_house_member = {
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
第444行: 第400行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| dynasty house
|landed title
| character
|-
| random_house_claimed_artifact
| Iterate through all claimed artifacts of the scoped house
| <pre>random_house_claimed_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| dynasty house
| artifact
|-
| random_house_member
| Iterate through all house members
| <pre>random_house_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| dynasty house
| character
|-
| 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
| Removes a claim on the target artifact from the scoped house
| <pre></pre>
| dynasty house
| artifact
|-
| remove_house_modifier
| Remove a modifier from a house
| <pre>remove_house_modifier = name</pre>
| dynasty house
|
|-
| set_house_name
| Sets dynasty house name
| <pre>set_house_name=loc_key</pre>
| dynasty house
|
|-
| add_faction_discontent
| add_faction_discontent = X adds (or subtracts) discontent to the scope faction
| <pre></pre>
| faction
|
|-
| destroy_faction
| the scoped faction is destroyed [yes|no]
| <pre></pre>
| faction
|
|-
| every_faction_county_member
| Iterate through all faction county members
| <pre>every_faction_county_member = { limit = { <triggers> } <effects> }</pre>
| faction
| landed title
|-
| every_faction_member
| Iterate through all faction character members
| <pre>every_faction_member = { limit = { <triggers> } <effects> }</pre>
| faction
| character
|-
| faction_remove_war
| Removes the war currently associated with the faction
| <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_county_province
| ordered_faction_county_member
|Iterate through all provinces in a county
| Iterate through all faction county members
|ordered_county_province = {
| <pre>ordered_faction_county_member = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第457行: 第487行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| faction
|province
| landed title
|-
|-
|ordered_de_jure_county_holder
| ordered_faction_member
|Iterate through all characters directly holding counties within this dejure title
| Iterate through all faction character members
|ordered_de_jure_county_holder = {
| <pre>ordered_faction_member = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第470行: 第500行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| faction
|character
| character
|-
| random_faction_county_member
| Iterate through all faction county members
| <pre>random_faction_county_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| faction
| landed title
|-
|-
|ordered_de_jure_top_liege
| random_faction_member
|Iterate through all top lieges of the counts within this dejure title
| Iterate through all faction character members
|ordered_de_jure_top_liege = {
| <pre>random_faction_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| faction
| character
|-
| remove_special_character
| Removes the special character for the scope faction
| <pre></pre>
| faction
|
|-
| remove_special_title
| Removes the special character for the scope faction
| <pre></pre>
| faction
|
|-
| set_special_character
| Sets the special character for the scope faction
| <pre></pre>
| faction
| character
|-
| set_special_title
| Sets the special title for the scope faction
| <pre></pre>
| faction
| landed title
|-
| add_attacker
| adds the target character to the scope war as an attacker
| <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
第483行: 第591行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| war
|character
| character
|-
|-
|ordered_dejure_vassal_title_holder
| ordered_war_defender
|Iterate through all the vassal holders of the title
| Iterate through all defenders in the war
|ordered_dejure_vassal_title_holder = {
| <pre>ordered_war_defender = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第496行: 第604行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| war
|character
| character
|-
|-
|ordered_election_candidate
| ordered_war_participant
|Iterate through all characters who are valid candidates in an election for a title
| Iterate through all participants in the war
|ordered_election_candidate = {
| <pre>ordered_war_participant = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第509行: 第617行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| war
|character
| character
|-
| random_war_attacker
| Iterate through all attackers in the war
| <pre>random_war_attacker = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| war
| character
|-
| random_war_defender
| Iterate through all defenders in the war
| <pre>random_war_defender = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| war
| character
|-
| random_war_participant
| Iterate through all participants in the war
| <pre>random_war_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| war
| character
|-
| remove_participant
| removes the target character from the scope war
| <pre></pre>
| war
| character
|-
| set_called_to
| sets the target character as already called to the scope war
| <pre></pre>
| war
| character
|-
| set_casus_belli
| sets the casus belli of the scope war
| <pre></pre>
| war
|
|-
| accept_invitation_for_character
| accept a characters invitation to the activity
| <pre></pre>
| 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
| <pre></pre>
| activity
|
|-
| 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_elector
| ordered_activity_declined
|Iterate through all characters who are valid electors in an election for a title
| Iterate through all characters who declined an activity invite to a specific activity
|ordered_elector = {
| <pre>ordered_activity_declined = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第522行: 第714行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| activity
|character
| character
|-
|-
|ordered_in_de_facto_hierarchy
| ordered_activity_invited
|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 all characters who have unanswered invites to a specific activity
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>ordered_activity_invited = {
..._de_jure_vassal_and_below = { continue = { conditions } }
|ordered_in_de_facto_hierarchy = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第537行: 第727行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| activity
|landed title
| character
|-
|-
|ordered_in_de_jure_hierarchy
| ordered_participant
|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 all participants in an activity
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>ordered_participant = {
..._de_jure_vassal_and_below = { continue = { conditions } }
|ordered_in_de_jure_hierarchy = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第552行: 第740行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| activity
|landed title
| character
|-
|-
|ordered_neighboring_county
| random_activity_declined
|Iterate through all neighboring counties. Can only be used in county scope
| Iterate through all characters who declined an activity invite to a specific activity
|ordered_neighboring_county = {
| <pre>random_activity_declined = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| activity
| character
|-
| random_activity_invited
| Iterate through all characters who have unanswered invites to a specific activity
| <pre>random_activity_invited = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| activity
| character
|-
| random_participant
| Iterate through all participants in an activity
| <pre>random_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| 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 }
| <pre></pre>
| combat side
|
|-
| every_side_commander
| Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
| <pre>every_side_commander = { limit = { <triggers> } <effects> }</pre>
| combat side
| character
|-
| every_side_knight
| Iterate through all knights
| <pre>every_side_knight = { limit = { <triggers> } <effects> }</pre>
| combat side
| character
|-
| lose_combat
| ends the combat as the losing side (doesn't end the combat if evaluated to false)
| <pre></pre>
| combat side
|
|-
| ordered_side_commander
| Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
| <pre>ordered_side_commander = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第565行: 第795行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| combat side
|landed title
| character
|-
|-
|ordered_this_title_or_de_jure_above
| ordered_side_knight
|Iterate through this title and all its dejure liege titles
| Iterate through all knights
|ordered_this_title_or_de_jure_above = {
| <pre>ordered_side_knight = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第578行: 第808行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| combat side
|landed title
| character
|-
| random_side_commander
| Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
| <pre>random_side_commander = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| combat side
| character
|-
| random_side_knight
| Iterate through all knights
| <pre>random_side_knight = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| combat side
| character
|-
| win_combat
| ends the combat as the winning side (doesn't end the combat if evaluated to false)
| <pre></pre>
| combat side
|
|-
| add_from_contribution_attackers
| Adds prestige, gold and piety based on contribution to allied attackers. parameters: prestige, gold, piety.
| <pre></pre>
| casus belli
|
|-
| add_from_contribution_defenders
| Adds prestige, gold and piety based on contribution to allied defenders. parameters: prestige, gold, piety.
| <pre></pre>
| casus belli
|
|-
| every_target_title
| Iterate through all casus belli's target titles
| <pre>every_target_title = { limit = { <triggers> } <effects> }</pre>
| casus belli
| landed title
|-
|-
|ordered_title_heir
| ordered_target_title
|Line of succession for the scoped title
| Iterate through all casus belli's target titles
|ordered_title_heir = {
| <pre>ordered_target_title = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第591行: 第857行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| casus belli
|character
| landed title
|-
| random_target_title
| Iterate through all casus belli's target titles
| <pre>random_target_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| casus belli
| landed title
|-
| add_loot
| Adds loot to the currently scoped raiding army.
| <pre>Usage:
add_loot = VALUE</pre>
| army
|
|-
| assign_commander
| Assign a commander for the scoped army
| <pre>set_commander = scope:a_character</pre>
| army
| character
|-
| remove_commander
| Removes the currently assigned commander from the scoped army
| <pre>remove_commander = yes</pre>
| 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
| <pre>set_army_location = scope:province</pre>
| army
| province
|-
| add_artifact_history
| Adds a history entry to the artifact, could for example be a reforging event
| <pre>
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
|
|-
| add_artifact_modifier
| Adds a static modifier to the given artifact
| <pre>add_artifact_modifier = modifier_name
NOTE: does not support duration!</pre>
| artifact
|
|-
| add_artifact_title_history
| Adds the title history of the given title to the scoped artifacts history
| <pre>
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
|
|-
| add_durability
| Add this much to the artifacts durability
| <pre></pre>
| artifact
|
|-
| clear_artifact_modifiers
| Removes all modifiers from the scoped artifact
| <pre>clear_artifact_modifiers = yes</pre>
| artifact
|
|-
| copy_artifact_modifiers
| Copies the modifiers of the target artifact. Does *not* clear out existing modifiers
| <pre>copy_artifact_modifiers = target_artifact</pre>
| artifact
| artifact
|-
| every_artifact_claimant
| Iterate through all characters with a claim on the scoped artifact
| <pre>every_artifact_claimant = { limit = { <triggers> } <effects> }</pre>
| artifact
| character
|-
| every_artifact_house_claimant
| Iterate through all dynasty houses with a claim on the scoped artifact
| <pre>every_artifact_house_claimant = { limit = { <triggers> } <effects> }</pre>
| artifact
| dynasty house
|-
|-
|ordered_title_joined_faction
| ordered_artifact_claimant
|Iterate through all factions joined the scope landed title
| Iterate through all characters with a claim on the scoped artifact
|ordered_title_joined_faction = {
| <pre>ordered_artifact_claimant = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第604行: 第958行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| artifact
|faction
| character
|-
|-
|ordered_title_to_title_neighboring_and_across_water_barony
| ordered_artifact_house_claimant
|Scopes from a title to a neighboring barony (incl. across water, looking trough the de Jure lieges)
| Iterate through all dynasty houses with a claim on the scoped artifact
|ordered_title_to_title_neighboring_and_across_water_barony = {
| <pre>ordered_artifact_house_claimant = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第617行: 第971行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|landed title
| artifact
|landed title
| dynasty house
|-
| random_artifact_claimant
| Iterate through all characters with a claim on the scoped artifact
| <pre>random_artifact_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| artifact
| character
|-
| random_artifact_house_claimant
| Iterate through all dynasty houses with a claim on the scoped artifact
| <pre>random_artifact_house_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| artifact
| dynasty house
|-
|-
|ordered_title_to_title_neighboring_and_across_water_county
| reforge_artifact
|Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
| Reforges the given artifact, restoring its durability and potentially changing any other attributes such as type or modifiers unless those fields are left empty
|ordered_title_to_title_neighboring_and_across_water_county = {
| <pre>
limit = { <triggers> }
Be aware that we make use of the current scopes implicitly. This is done in common/artifacts/visuals
order_by = script_value
name = dynamic description - artifact name
position = int
description = dynamic description - artifact description
min = int
rarity = enum - artifact rarity, ex. legendary
max = script_value
type = flag - inventory slot type, ex. trinket
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
modifier = static modifier - applied to the character whom wields this artifact
<effects> }
durability = script value - new durability, will be max by default
|landed title
max_durability = script value - Optional. A value for the max durability, which would override the one normally assigned by the defines
|landed title
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
|-
|-
|ordered_title_to_title_neighboring_and_across_water_duchy
| remove_artifact_feature_group
|Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| Removes th feature from the specified group from the artifact.
|ordered_title_to_title_neighboring_and_across_water_duchy = {
| <pre>Cannot remove required groups.
limit = { <triggers> }
remove_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> }
|landed title
|landed title
|-
|-
|ordered_title_to_title_neighboring_and_across_water_empire
| remove_artifact_modifier
|Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| Removes a static modifier to the given artifact
|ordered_title_to_title_neighboring_and_across_water_empire = {
| <pre>remove_artifact_modifier = modifier_name
limit = { <triggers> }
NOTE: does not support duration!</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> }
|landed title
|landed title
|-
|-
|ordered_title_to_title_neighboring_and_across_water_kingdom
| set_artifact_description
|Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| Sets the description of the given artifact
|ordered_title_to_title_neighboring_and_across_water_kingdom = {
| <pre>set_artifact_description = dynamic desc</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> }
|landed title
|landed title
|-
|-
|ordered_title_to_title_neighboring_barony
| set_artifact_feature
|Scopes from a title to a neighboring barony (looking trough the de Jure lieges)
| Sets the specified feature on the artifact.
|ordered_title_to_title_neighboring_barony = {
| <pre>If there's already a feature of that group, it gets overridden.
limit = { <triggers> }
set_artifact_feature = 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> }
|landed title
|landed title
|-
|-
|ordered_title_to_title_neighboring_county
| set_artifact_feature_group
|Scopes from a title to a neighboring county (looking trough the de Jure lieges)
| Sets a feature from the specified group on the artifact.
|ordered_title_to_title_neighboring_county = {
| <pre>Uses the current scopes. Uses the weighting from the group.
limit = { <triggers> }
If there's already a feature of that group, it gets overridden.
order_by = script_value
set_artifact_feature_group = key</pre>
position = int
| artifact
min = int
max = 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
| set_artifact_name
|Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
| Sets the name of the given artifact
|ordered_title_to_title_neighboring_duchy = {
| <pre>set_artifact_name = dynamic name</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> }
|landed title
|landed title
|-
|-
|ordered_title_to_title_neighboring_empire
| set_artifact_rarity
|Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
| Sets the rarity of the scoped artifact. Note that this does not update graphics and the like
|ordered_title_to_title_neighboring_empire = {
| <pre>set_artifact_rarity = common</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> }
|landed title
|landed title
|-
|-
|ordered_title_to_title_neighboring_kingdom
| set_max_durability
|Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
| Sets the artifact's max durability
|ordered_title_to_title_neighboring_kingdom = {
| <pre></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> }
|landed title
|landed title
|-
|-
|random_claimant
| set_owner
|Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
| Change the artifacts owner and transfer it to the given character
|random_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>
|landed title
set_artifact_owner = {}
|character
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
|-
|-
|random_connected_county
| set_should_decay
|Iterate through all counties connected to this one. Is based on top liege
| Set if the scoped artifact should decay with time or not
random_connected_county = {
| <pre>set_should_decay = yes/no</pre>
max_naval_distance = 500
| artifact
allow_one_county_land_gap = yes
}
|random_connected_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
|landed title
|landed title
|-
|-
|random_county_province
| generate_coa
|Iterate through all provinces in a county
| Generates a coat of arms for the scoped landed title, dynasty or house
|random_county_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>generate_coa = yes</pre>
|landed title
| landed title, dynasty, dynasty house
|province
|-
|-
|random_de_jure_county_holder
| reset_coa
|Iterate through all characters directly holding counties within this dejure title
| Rest the coat of arms for the scoped landed title, dynasty or house to its template
|random_de_jure_county_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>reset_coa = yes</pre>
|landed title
| landed title, dynasty, dynasty house
|character
|-
|-
|random_de_jure_top_liege
| set_coa
|Iterate through all top lieges of the counts within this dejure 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
|random_de_jure_top_liege = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>set_coa = k_england
|landed title
set_coa = scope:new_coa</pre>
|character
| landed title, dynasty, dynasty house
|-
|-
|random_dejure_vassal_title_holder
| add_county_modifier
|Iterate through all the vassal holders of the title
| Add a modifier to a county
|random_dejure_vassal_title_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>add_county_modifier = name
|landed title
add_county_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>
| landed title
|-
|-
|random_election_candidate
| change_county_control
|Iterate through all characters who are valid candidates in an election for a title
| 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.
|random_election_candidate = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|landed title
| landed title
|character
|-
|-
|random_elector
| change_de_jure_drift_progress
|Iterate through all characters who are valid electors in an election for a title
| 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> } }
|random_elector = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|landed title
| landed title
|character
|-
|-
|random_in_de_facto_hierarchy
| change_development_level
|Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| 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.
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></pre>
..._de_jure_vassal_and_below = { continue = { conditions } }
| landed title
|random_in_de_facto_hierarchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
|landed title
|landed title
|
|-
|-
|random_in_de_jure_hierarchy
| change_development_progress
|Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
| 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.
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></pre>
..._de_jure_vassal_and_below = { continue = { conditions } }
| landed title
|random_in_de_jure_hierarchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
|landed title
|landed title
|-
|-
|random_neighboring_county
| change_development_progress_with_overflow
|Iterate through all neighboring counties. Can only be used in county scope
| 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
|random_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|landed title
| landed title
|landed title
|-
|-
|random_this_title_or_de_jure_above
| clear_title_laws
|Iterate through this title and all its dejure liege titles
| remove all title laws from the scoped title. DOES NOT apply law removal costs and effects.
|random_this_title_or_de_jure_above = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>clear_title_laws = yes</pre>
|landed title
| landed title
|landed title
|-
|-
|random_title_heir
| clear_title_laws_effects
|Line of succession for the scoped title
| remove all title laws from the scoped title. DOES apply law removal costs and effects.
|random_title_heir = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>clear_title_laws_effects = yes</pre>
|landed title
| landed title
|character
|-
|-
|random_title_joined_faction
| copy_title_history
|Iterate through all factions joined the scope landed title
| Copy title history from another title
|random_title_joined_faction = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>copy_title_history = source_title</pre>
|landed title
| landed title
|faction
| landed title
|-
|-
|random_title_to_title_neighboring_and_across_water_barony
| every_past_holder
|Scopes from a title to a neighboring barony (incl. across water, looking trough the de Jure lieges)
| Iterate through all past owners of a title from earliest to latest
|random_title_to_title_neighboring_and_across_water_barony = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>every_any_past_holder = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|landed title
| character
|-
|-
|random_title_to_title_neighboring_and_across_water_county
| every_past_holder_reversed
|Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
| Iterate through all past owners of a title from latest to earliest
|random_title_to_title_neighboring_and_across_water_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>every_any_past_holder_reversed = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|landed title
| character
|-
|-
|random_title_to_title_neighboring_and_across_water_duchy
| every_claimant
|Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
|random_title_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>every_claimant = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|landed title
| character
|-
|-
|random_title_to_title_neighboring_and_across_water_empire
| every_connected_county
|Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| Iterate through all counties connected to this one. Is based on top liege
|random_title_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>any/every/whatever_connectec_county = {
|landed title
max_naval_distance = 500
|landed title
allow_one_county_land_gap = yes
every_connected_county = { limit = { <triggers> } <effects> }</pre>
| landed title
| landed title
|-
|-
|random_title_to_title_neighboring_and_across_water_kingdom
| every_controlled_faith
|Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| Iterate through all faiths headed by a title
|random_title_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>every_controlled_faith = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|landed title
| faith
|-
|-
|random_title_to_title_neighboring_barony
| every_county_province
|Scopes from a title to a neighboring barony (looking trough the de Jure lieges)
| Iterate through all provinces in a county
|random_title_to_title_neighboring_barony = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>every_county_province = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|landed title
| province
|-
|-
|random_title_to_title_neighboring_county
| every_county_struggle
|Scopes from a title to a neighboring county (looking trough the de Jure lieges)
| Iterate through all struggles that a county is involved in.
|random_title_to_title_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>every_county_struggle = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|landed title
| struggle
|-
|-
|random_title_to_title_neighboring_duchy
| every_de_jure_county
|Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
| Iterate through all counties within this dejure title
|random_title_to_title_neighboring_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>every_de_jure_county = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|landed title
| landed title
|-
|-
|random_title_to_title_neighboring_empire
| every_de_jure_county_holder
|Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
| Iterate through all characters directly holding counties within this dejure title
|random_title_to_title_neighboring_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>every_de_jure_county_holder = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|landed title
| character
|-
|-
|random_title_to_title_neighboring_kingdom
| every_de_jure_top_liege
|Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
| Iterate through all top lieges of the counts within this dejure title
|random_title_to_title_neighboring_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>every_de_jure_top_liege = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|landed title
| character
|-
|-
|remove_all_county_modifier_instances
| every_dejure_vassal_title_holder
|Remove all instances of a modifier from a county
| Iterate through all the vassal holders of the title
|remove_all_county_modifier_instances = name
| <pre>every_dejure_vassal_title_holder = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| character
|-
|-
|remove_county_modifier
| every_direct_de_facto_vassal_title
|Remove a modifier from a county
| Iterate through all de facto vassal titles
|remove_county_modifier = name
| <pre>every_direct_de_facto_vassal_title = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| landed title
|-
|-
|reset_title_name
| every_direct_de_jure_vassal_title
|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 the all de jure vassals titles
|reset_title_name = yes
| <pre>every_direct_de_jure_vassal_title = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| landed title
|-
|-
|reset_title_prefix
| every_election_candidate
|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 characters who are valid candidates in an election for a title
|reset_title_prefix = yes
| <pre>every_election_candidate = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| character
|-
|-
|revoke_lease
| every_elector
|Revoke the lease of the scoped title
| Iterate through all characters who are valid electors in an election for a title
|revoke_lease = yes
| <pre>every_elector = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| character
|-
|-
|set_always_follows_primary_heir
| every_in_de_facto_hierarchy
|Sets if the title should always go to the primary heir in partition succession
| Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
|set_always_follows_primary_heir = yes
| <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
|landed title
..._de_jure_vassal_and_below = { continue = { conditions } }
|
every_in_de_facto_hierarchy = { limit = { <triggers> } <effects> }</pre>
| landed title
| landed title
|-
|-
|set_capital_county
| every_in_de_jure_hierarchy
|Sets the capital county of the title to the target county
| Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
|set_capital_county = <some county title>
| <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
|landed title
..._de_jure_vassal_and_below = { continue = { conditions } }
|landed title
every_in_de_jure_hierarchy = { limit = { <triggers> } <effects> }</pre>
| landed title
| landed title
|-
|-
|set_color_from_title
| every_neighboring_county
|Sets the color of the title to the same as the target title (shifted very slightly to not be identical)
| Iterate through all neighboring counties. Can only be used in county scope
|set_color_from_title = <some title>
| <pre>every_neighboring_county = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|landed title
| landed title
|-
|-
|set_county_culture
| every_this_title_or_de_jure_above
|Sets the culture of a county
| Iterate through this title and all its dejure liege titles
|set_county_culture = english/root.character_culture
| <pre>every_this_title_or_de_jure_above = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| landed title
|-
|-
|set_county_faith
| every_title_heir
|Changes what faith a county has
| Line of succession for the scoped title
|Unspecified
| <pre>every_title_heir = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| character
|-
|-
|set_de_jure_liege_title
| every_title_joined_faction
|Set a new DeJure liege title
| Iterate through all factions joined the scope landed title
|set_de_jure_liege_title = new_de_jure_liege
| <pre>every_title_joined_faction = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|landed title
| faction
|-
|-
|set_definitive_form
| every_title_to_title_neighboring_and_across_water_county
|Sets if the title should use a definitive form name (no 'Kingdom of')
| Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
|set_definitive_form = yes
| <pre>every_title_to_title_neighboring_and_across_water_county = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| landed title
|-
|-
|set_delete_on_destroy
| every_title_to_title_neighboring_and_across_water_duchy
|Sets if the title should be deleted from the gamestate completely when it is destroyed
| Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
|set_delete_on_destroy = yes
| <pre>every_title_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| landed title
|-
|-
|set_destroy_if_invalid_heir
| every_title_to_title_neighboring_and_across_water_empire
|Sets if the title should be destroyed on succession if there's no heir matching its restrictions
| Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
|set_destroy_if_invalid_heir = yes
| <pre>every_title_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| landed title
|-
|-
|set_destroy_on_succession
| every_title_to_title_neighboring_and_across_water_kingdom
|Sets if the title should be destroyed on succession
| Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
|set_destroy_on_succession = yes
| <pre>every_title_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| landed title
|-
|-
|set_landless_title
| every_title_to_title_neighboring_county
|Sets if the title is landless (can be held by rulers with no land)
| Scopes from a title to a neighboring county (looking trough the de Jure lieges)
|set_landless_title = yes
| <pre>every_title_to_title_neighboring_county = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| landed title
|-
|-
|set_no_automatic_claims
| every_title_to_title_neighboring_duchy
|Sets if the title should disallow automatic claims (meaning claims will only be added by script, and by pressed claims being inherited).
| Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
|set_no_automatic_claims = yes
| <pre>every_title_to_title_neighboring_duchy = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| landed title
|-
|-
|set_title_name
| every_title_to_title_neighboring_empire
|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
| Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
|set_title_name = TEST_NAME_PLEASE_IGNORE
| <pre>every_title_to_title_neighboring_empire = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| landed title
|-
|-
|set_title_prefix
| every_title_to_title_neighboring_kingdom
|sets the prefix of the scoped title. Won't cause its name or adjective to change
| Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
|set_title_prefix = PREFIX_THE
| <pre>every_title_to_title_neighboring_kingdom = { limit = { <triggers> } <effects> }</pre>
|landed title
| landed title
|
| landed title
|-
|-
|title_create_faction
| lease_out_to
|the scoped landed title creates a faction of the specified type against the specified target, title_create_faction = { type = X target = Y }
| Lease out the scoped title
|Unspecified
| <pre>lease_out_to = scope:a_holy_order</pre>
|landed title
| landed title
|
| holy order
|-
|-
|title_join_faction
| ordered_past_holder
|the landed title in the scope joins the assigned faction
| Iterate through all past owners of a title from earliest to latest
|Unspecified
| <pre>ordered_any_past_holder = {
|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
| character
|-
|-
|title_leave_faction
| ordered_past_holder_reversed
|the title in the scope leaves the assigned faction
| Iterate through all past owners of a title from latest to earliest
|Unspecified
| <pre>ordered_any_past_holder_reversed = {
|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
| character
|-
|-
|end_story
| ordered_claimant
|Ends a story and executes it's on_end effect, the story can no longer be accessed after this
| Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
|Unspecified
| <pre>ordered_claimant = {
|story cycle
limit = { <triggers> }
|
order_by = script_value
position = int
min = int
max = 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
|-
|-
|make_story_owner
| ordered_connected_county
|makes the character the new owner of the story
| Iterate through all counties connected to this one. Is based on top liege
|make_story_owner = character_target
| <pre>any/every/whatever_connectec_county = {
|story cycle
max_naval_distance = 500
|character
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> }</pre>
| landed title
| landed title
|-
|-
|add_innovation
| ordered_controlled_faith
|Add innovation to a culture
| Iterate through all faiths headed by a title
|Unspecified
| <pre>ordered_controlled_faith = {
|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> }</pre>
| landed title
| faith
|-
|-
|add_random_innovation
| ordered_county_province
|Add random available innovation<culture> = { add_random_innovation = culture_group_military/culture_group_civic/culture_group_regional/yes }
| Iterate through all provinces in a county
|Unspecified
| <pre>ordered_county_province = {
|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> }</pre>
| landed title
| province
|-
|-
|get_all_innovations_from
| ordered_county_struggle
|Discover all innovations from the target culture
| Iterate through all struggles that a county is involved in.
|get_all_innovations_from = <culture>
| <pre>ordered_county_struggle = {
|culture
limit = { <triggers> }
|culture
order_by = script_value
position = int
min = int
max = 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
| struggle
|-
|-
|get_random_innovation_from
| ordered_de_jure_county
|Get random available innovation from another culture
| Iterate through all counties within this dejure title
|Unspecified
| <pre>ordered_de_jure_county = {
|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> }</pre>
| landed title
| landed title
|-
|-
|add_character_flag
| ordered_de_jure_county_holder
|Adds a character flag. X is the name of the flag and Y is a value or value interval "{ min max }".
| Iterate through all characters directly holding counties within this dejure title
|add_character_flag = { flag = X [days/weeks/years = Y] }
| <pre>ordered_de_jure_county_holder = {
|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>
| landed title
| character
|-
|-
|add_character_modifier
| ordered_de_jure_top_liege
|Add a modifier to a character
| Iterate through all top lieges of the counts within this dejure title
|add_character_modifier = name
| <pre>ordered_de_jure_top_liege = {
add_character_modifier = { modifier = name days/weeks/months/years = int }
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>
| landed title
| character
|-
|-
|add_courtier
| ordered_dejure_vassal_title_holder
|Add the target character to the scope character's court
| Iterate through all the vassal holders of the title
|Unspecified
| <pre>ordered_dejure_vassal_title_holder = {
|character
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>
| landed title
| character
|-
|-
|add_diplomacy_lifestyle_perk_points
| ordered_direct_de_facto_vassal_title
|Adds lifestyle per points to the given character
| Iterate through all de facto vassal titles
|Unspecified
| <pre>ordered_direct_de_facto_vassal_title = {
|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>
| landed title
| landed title
|-
|-
|add_diplomacy_lifestyle_xp
| ordered_direct_de_jure_vassal_title
|Adds lifestyle XP to the given character. Can be used with lifestyles not currently focused on.
| Iterate through the all de jure vassals titles
|add_diplomacy_lifestyle_xp = int
| <pre>ordered_direct_de_jure_vassal_title = {
|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>
| landed title
| landed title
|-
|-
|add_dread
| ordered_election_candidate
|adds (or removes) dread to a character
| Iterate through all characters who are valid candidates in an election for a title
|Unspecified
| <pre>ordered_election_candidate = {
|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>
| landed title
| character
|-
|-
|add_gold
| ordered_elector
|adds gold to a character
| Iterate through all characters who are valid electors in an election for a title
|Unspecified
| <pre>ordered_elector = {
|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>
| landed title
| character
|-
|-
|add_hook
| ordered_in_de_facto_hierarchy
|Adds a hook on a character. 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.
| Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
|add_hook = { type = X, target = Y, secret = Z, days/months/years = W  }
| <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
|character
..._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> }</pre>
| landed title
| landed title
|-
|-
|add_hook_no_toast
| ordered_in_de_jure_hierarchy
|Adds a hook on a character. 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.
| Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
|add_hook = { type = X, target = Y, secret = Z, days/months/years = W  }
| <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
|character
..._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> }</pre>
| landed title
| landed title
|-
|-
|add_intrigue_lifestyle_perk_points
| ordered_neighboring_county
|Adds lifestyle per points to the given character
| Iterate through all neighboring counties. Can only be used in county scope
|Unspecified
| <pre>ordered_neighboring_county = {
|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>
| landed title
| landed title
|-
|-
|add_intrigue_lifestyle_xp
| ordered_this_title_or_de_jure_above
|Adds lifestyle XP to the given character
| Iterate through this title and all its dejure liege titles
|Unspecified
| <pre>ordered_this_title_or_de_jure_above = {
|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>
| landed title
| landed title
|-
|-
|add_joined_faction_discontent
| ordered_title_heir
|add_joined_faction_discontent = X adds (or subtracts) discontent to the factions the scope character is in
| Line of succession for the scoped title
|Unspecified
| <pre>ordered_title_heir = {
|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>
| landed title
| character
|-
|-
|add_knows_of_killer
| ordered_title_joined_faction
|Adds the right hand side character as knowing of the killer of the scoped object
| Iterate through all factions joined the scope landed title
|dead_person = { add_knows_of_killer = root }
| <pre>ordered_title_joined_faction = {
|character
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>
| landed title
| faction
|-
|-
|add_learning_lifestyle_perk_points
| ordered_title_to_title_neighboring_and_across_water_county
|Adds lifestyle per points to the given character
| Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>ordered_title_to_title_neighboring_and_across_water_county = {
|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>
| landed title
| landed title
|-
|-
|add_learning_lifestyle_xp
| ordered_title_to_title_neighboring_and_across_water_duchy
|Adds lifestyle XP to the given character
| Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>ordered_title_to_title_neighboring_and_across_water_duchy = {
|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>
| landed title
| landed title
|-
|-
|add_martial_lifestyle_perk_points
| ordered_title_to_title_neighboring_and_across_water_empire
|Adds lifestyle per points to the given character
| Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>ordered_title_to_title_neighboring_and_across_water_empire = {
|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>
| landed title
| landed title
|-
|-
|add_martial_lifestyle_xp
| ordered_title_to_title_neighboring_and_across_water_kingdom
|Adds lifestyle XP to the given character
| Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>ordered_title_to_title_neighboring_and_across_water_kingdom = {
|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>
| landed title
| landed title
|-
|-
|add_opinion
| ordered_title_to_title_neighboring_county
|Adds a temporary opinion modifier. 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.
| Scopes from a title to a neighboring county (looking trough the de Jure lieges)
|add_opinion = { modifier = X days/months/years = Y target = Z }
| <pre>ordered_title_to_title_neighboring_county = {
|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>
| landed title
| landed title
|-
|-
|add_perk
| ordered_title_to_title_neighboring_duchy
|Adds the perk for this character
| Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
|Unspecified
| <pre>ordered_title_to_title_neighboring_duchy = {
|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>
| landed title
| landed title
|-
|-
|add_piety
| ordered_title_to_title_neighboring_empire
|gives (or takes) piety to a character
| Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
|Unspecified
| <pre>ordered_title_to_title_neighboring_empire = {
|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>
| landed title
| landed title
|-
|-
|add_piety_experience
| ordered_title_to_title_neighboring_kingdom
|gives (or takes) piety experience to a character
| Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
|Unspecified
| <pre>ordered_title_to_title_neighboring_kingdom = {
|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>
| landed title
| landed title
|-
|-
|add_piety_level
| random_past_holder
|increases (or decreases) the piety level of a character
| Iterate through all past owners of a title from earliest to latest
|Unspecified
| <pre>random_any_past_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| character
|-
|-
|add_pressed_claim
| random_past_holder_reversed
|gives a pressed claim to a character
| Iterate through all past owners of a title from latest to earliest
|Unspecified
| <pre>random_any_past_holder_reversed = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|landed title
| character
|-
|-
|add_prestige
| random_claimant
|gives (or takes) prestige to a character
| Iterate through all claimants to title. parameters: explicit = yes/no/all - default yes
|Unspecified
| <pre>random_claimant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| character
|-
|-
|add_prestige_experience
| random_connected_county
|gives (or takes) prestige experience to a character
| Iterate through all counties connected to this one. Is based on top liege
|Unspecified
| <pre>any/every/whatever_connectec_county = {
|character
max_naval_distance = 500
|
allow_one_county_land_gap = yes
random_connected_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
|-
|-
|add_prestige_level
| random_controlled_faith
|increases (or decreases) the prestige level of a character
| Iterate through all faiths headed by a title
|Unspecified
| <pre>random_controlled_faith = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| faith
|-
|-
|add_realm_law
| random_county_province
|Adds the given law to the scoped character
| Iterate through all provinces in a county
|Unspecified
| <pre>random_county_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| province
|-
|-
|add_realm_law_skip_effects
| random_county_struggle
|Adds the given law to the scoped character. Skips the cost and the pass effect, and the revoke effects of the current law
| Iterate through all struggles that a county is involved in.
|Unspecified
| <pre>random_county_struggle = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| struggle
|-
|-
|add_relation_flag
| random_de_jure_county
|Adds a flag to an existing relation
| Iterate through all counties within this dejure title
|add_relation_flag = {
| <pre>random_de_jure_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
  relation = scripted_relation
| landed title
  flag = flag_name (declared in the relation's script)
| landed title
  target = other_character
}
|character
|-
|-
|add_scheme_cooldown
| random_de_jure_county_holder
|Sets a scheme cooldown for the scope character towards = { target=target_character type=scheme_type days/weeks/months/years = duration }
| Iterate through all characters directly holding counties within this dejure title
|Unspecified
| <pre>random_de_jure_county_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| character
|-
|-
|add_secret
| random_de_jure_top_liege
|Adds a secret
| Iterate through all top lieges of the counts within this dejure title
|add_secret = { type = X target = Y }
| <pre>random_de_jure_top_liege = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
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.
| landed title
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
|character
|-
|-
|add_stewardship_lifestyle_perk_points
| random_dejure_vassal_title_holder
|Adds lifestyle per points to the given character
| Iterate through all the vassal holders of the title
|Unspecified
| <pre>random_dejure_vassal_title_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| character
|-
|-
|add_stewardship_lifestyle_xp
| random_direct_de_facto_vassal_title
|Adds lifestyle XP to the given character
| Iterate through all de facto vassal titles
|Unspecified
| <pre>random_direct_de_facto_vassal_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| landed title
|-
|-
|add_stress
| random_direct_de_jure_vassal_title
|Increases stress of a character. Negative values decrease stress.
| Iterate through the all de jure vassals titles
|Unspecified
| <pre>random_direct_de_jure_vassal_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| landed title
|-
|-
|add_targeting_factions_discontent
| random_election_candidate
|add_targeting_factions_discontent = X adds (or subtracts) discontent to all the factions that are targeting the scope character
| Iterate through all characters who are valid candidates in an election for a title
|Unspecified
| <pre>random_election_candidate = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| character
|-
|-
|add_to_scheme
| random_elector
|Adds a character as an agent to the scheme
| Iterate through all characters who are valid electors in an election for a title
|Unspecified
| <pre>random_elector = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| character
|-
|-
|add_trait
| random_in_de_facto_hierarchy
|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)
| Iterate through the title itself, all de facto vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
|Unspecified
| <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
|character
..._de_jure_vassal_and_below = { continue = { conditions } }
|
random_in_de_facto_hierarchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
|-
|-
|add_trait_force_tooltip
| random_in_de_jure_hierarchy
|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)
| Iterate through the title itself, all de jure vassals, and below. The continue trigger specifies whether to recursively iterate through the vassal's vassal
|Unspecified
| <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
|character
..._de_jure_vassal_and_below = { continue = { conditions } }
|
random_in_de_jure_hierarchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
|-
| random_neighboring_county
| Iterate through all neighboring counties. Can only be used in county scope
| <pre>random_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| landed title
| landed title
|-
| random_this_title_or_de_jure_above
| 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>
| landed title
| landed title
|-
|-
|add_truce_both_ways
| random_title_heir
|Sets the both-way truce against the specified character
| Line of succession for the scoped title
'character' specifies the target character
| <pre>random_title_heir = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
'override' says whether it should replace the previous truce even if shorter
| landed title
'years / months / days' sets the duration of the truce
| character
'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
| random_title_joined_faction
|Sets the truce against the specified character
| Iterate through all factions joined the scope landed title
'character' specifies the target character
| <pre>random_title_joined_faction = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
'override' says whether it should replace the previous truce even if shorter
| landed title
'years / months / days' sets the duration of the truce
| faction
'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
| random_title_to_title_neighboring_and_across_water_county
|adds (or removes) tyranny to (or from) a character
| Scopes from a title to a neighboring county (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>random_title_to_title_neighboring_and_across_water_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| landed title
|-
|-
|add_unpressed_claim
| random_title_to_title_neighboring_and_across_water_duchy
|gives an unpressed claim to a character
| Scopes from a title to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>random_title_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|landed title
| landed title
|-
|-
|add_visiting_courtier
| random_title_to_title_neighboring_and_across_water_empire
|Add the target character as the scope character's guest
| Scopes from a title to a neighboring empire (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>random_title_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|character
| landed title
|-
|-
|allow_alliance
| random_title_to_title_neighboring_and_across_water_kingdom
|Allows (previously broken) alliance with the target character
| Scopes from a title to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>random_title_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|character
| landed title
|-
|-
|allow_in_scheme
| random_title_to_title_neighboring_county
|Allow the character to join the scheme as an agent
| Scopes from a title to a neighboring county (looking trough the de Jure lieges)
|Unspecified
| <pre>random_title_to_title_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| landed title
|-
|-
|apply_ai_vassal_obligation_liege_most_desired
| random_title_to_title_neighboring_duchy
|Apply the new level for the most desired AI obligation level the liege in the contract wants
| Scopes from a title to a neighboring duchy (looking trough the de Jure lieges)
|Unspecified
| <pre>random_title_to_title_neighboring_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| landed title
|-
|-
|apply_ai_vassal_obligation_vassal_most_desired
| random_title_to_title_neighboring_empire
|Apply the new level for the most desired AI obligation level the vassal in the contract wants
| Scopes from a title to a neighboring empire (looking trough the de Jure lieges)
|Unspecified
| <pre>random_title_to_title_neighboring_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| landed title
|
| landed title
|-
|-
|assign_council_task
| random_title_to_title_neighboring_kingdom
|Assigns the target character to the council task
| Scopes from a title to a neighboring kingdom (looking trough the de Jure lieges)
|assign_council_task = {
| <pre>random_title_to_title_neighboring_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
   council_task = council_task_scope
| landed title
   target = character_taking_the_position   fire_on_actions = [yes]
| landed title
}
|character
|-
|-
|assign_councillor_type
| remove_all_county_modifier_instances
|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] }
| Remove all instances of a modifier from a county
|Unspecified
| <pre>remove_all_county_modifier_instances = name</pre>
|character
| landed title
|
|-
|-
|banish
| remove_county_modifier
|The character gets banished.
| Remove a modifier from a county
|Unspecified
| <pre>remove_county_modifier = name</pre>
|character
| landed title
|
|-
|-
|becomes_independent
| reset_title_name
|becomes and independent ruler
| Sets the name and adjective of the scoped title back to being based on its key. Won't cause the prefix to change
|becomes_independent = { change = 'previously created title_and_vassal_change'
| <pre>reset_title_name = yes</pre>
|character
| landed title
|
|-
|-
|break_alliance
| reset_title_prefix
|Breaks the alliance with the target character
| Sets the prefix of the scoped title back to being based on its key. Won't cause its adjective or name to change
|Unspecified
| <pre>reset_title_prefix = yes</pre>
|character
| landed title
|character
|-
|-
|cancel_truce_both_ways
| revoke_lease
|Ends the truce against the specified character, and theirs against the scoped character.
| Revoke the lease of the scoped title
|cancel_truce_both_ways = scope:character
| <pre>revoke_lease = yes</pre>
|character
| landed title
|character
|-
|-
|cancel_truce_one_way
| set_always_follows_primary_heir
|Ends the truce against the specified character.
| Sets if the title should always go to the primary heir in partition succession
|cancel_truce_one_way = scope:character
| <pre>set_always_follows_primary_heir = yes</pre>
|character
| landed title
|character
|-
|-
|change_current_weight
| set_can_be_named_after_dynasty
|Change the current weight of the scoped character
| Sets if the title can be named after it's holder's dynasty. set_can_be_named_after_dynasty_effect = no
|change_current_weight = 20
| <pre></pre>
|character
| landed title
|
|-
|-
|change_first_name
| set_capital_barony
|Change the first name of a character
| Sets scoped barony to be the county capital
|change_first_name = <localization_key>
| <pre>set_capital_barony = yes</pre>
change_first_name = scope:name/var:name # containing a flag with a localization key
| landed title
change_first_name = { template_character = scope:character } # copy name from the template character
|character
|
|-
|-
|change_government
| set_capital_county
|changes the government of a character
| Sets the capital county of the title to the target county
|Unspecified
| <pre>set_capital_county = <some county title></pre>
|character
| landed title
|
| landed title
|-
|-
|change_liege
| set_color_from_title
| = { liege = 'Character that should become the new liege' change = 'previously created title_and_vassal_change', adds a liege change
| Sets the color of the title to the same as the target title (shifted very slightly to not be identical)
|Unspecified
| <pre>set_color_from_title = <some title></pre>
|character
| landed title
|
| landed title
|-
|-
|change_prison_type
| set_county_culture
|Changes the charater's prison type. Scoped character is the prisoner. Accepts any static modifier (see also improson effect).
| sets the culture of a county
|change_prison_type = house_arrest
| <pre>usage:
|character
set_county_culture = culture:english/root.character_culture</pre>
|
| landed title
| culture
|-
|-
|change_target_weight
| set_county_faith
|Change the target weight of the scoped character
| Changes what faith a county has
|change_target_weight = 20
| <pre></pre>
|character
| landed title
|
| faith
|-
|-
|clear_forced_vote
| set_de_jure_liege_title
|Clears forced voting
| Set a new DeJure liege title
|clear_forced_vote = yes
| <pre>set_de_jure_liege_title = new_de_jure_liege</pre>
|character
| landed title
|
| landed title
|-
|-
|consume_banish_reasons
| set_definitive_form
|'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 if the title should use a definitive form name (no 'Kingdom of')
|Unspecified
| <pre>set_definitive_form = yes</pre>
|character
| landed title
|character
|-
|-
|consume_divorce_reasons
| set_delete_on_destroy
|'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.
| Sets if the title should be deleted from the gamestate completely when it is destroyed. set_delete_on_destroy = yes
|Unspecified
| <pre></pre>
|character
| landed title
|character
|-
|-
|consume_execute_reasons
| set_destroy_if_invalid_heir
|'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.
| Sets if the title should be destroyed on succession if there's no heir matching its restrictions. set_destroy_if_invalid_heir = yes
|Unspecified
| <pre></pre>
|character
| landed title
|character
|-
|-
|consume_imprisonment_reasons
| set_destroy_on_gain_same_tier
|'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.
| 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
|Unspecified
| <pre></pre>
|character
| landed title
|character
|-
|-
|consume_revoke_title_reason
| set_destroy_on_succession
|'Consume' 1 revoke title reason that the scoped character has on the target character.
| Sets if the title should be destroyed on succession. set_destroy_on_succession = yes
|Unspecified
| <pre></pre>
|character
| landed title
|character
|-
|-
|copy_inheritable_appearance_from
| set_landless_title
|copies the inheritable appearance attributes (inheritable genes in the character's DNA string) from the target character to the scoped character
| Sets if the title is landless (can be held by rulers with no land)
|Unspecified
| <pre>set_landless_title = yes</pre>
|character
| landed title
|character
|-
|-
|create_alliance
| set_no_automatic_claims
|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.
| Sets if the title should disallow automatic claims (meaning claims will only be added by script, and by pressed claims being inherited).
|create_alliance = {
| <pre>set_no_automatic_claims = yes</pre>
target = scope
| landed title
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_cadet_branch
| set_title_name
|The scope character creates a cadet branch of the house he is in [yes|no]
| 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
|Unspecified
| <pre>set_title_name = TEST_NAME_PLEASE_IGNORE</pre>
|character
| landed title
|
|-
|-
|create_faction
| set_title_prefix
|the scoped character creates a faction of the specified type against the specified target, create_faction = { type = X target = Y }
| sets the prefix of the scoped title. Won't cause its name or adjective to change
|Unspecified
| <pre>set_title_prefix = PREFIX_THE</pre>
|character
| landed title
|
|-
|-
|create_story
| title_create_faction
|Creates and initializes a story cycle with the current character as owner
| the scoped landed title creates a faction of the specified type against the specified target, title_create_faction = { type = X target = Y }
|create_story = story_type
| <pre></pre>
|create_story = {
| landed title
type = story_type
save_scope_as/save_temporary_scope_as = scope_name # optional way to get a reference to the new story
}
|character
|
|-
|-
|death
| title_join_faction
|kills a character, death = { killer = X death_reason = Y }, X is a character and Y is one of the death reason keys. Or death = natural which will pick a natural death reason to kill the character from.
| the landed title in the scope joins the assigned faction
|Unspecified
| <pre></pre>
|character
| landed title
|
| faction
|-
|-
|depose
| title_leave_faction
|The character gets deposed.
| the title in the scope leaves the assigned faction
|Unspecified
| <pre></pre>
|character
| landed title
|
| faction
|-
|-
|destroy_title
| update_dynamic_coa
|Destroys a title
| update_dynamic_coa = yes
|Unspecified
| <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>
|character
| landed title
|landed title
|-
|-
|end_pregnancy
| add_culture_tradition
|end a pregnancy
| Adds the cultural tradition specified in the RHS to the scope culture.add_culture_tradition = tradition_court_eunuchs
|Unspecified
| <pre></pre>
|character
| culture
|
|-
|-
|every_alert_creatable_title
| add_innovation
|Iterate through all titles that can be created by the character. (only for alerts)
| Add innovation to a culture. add_innovation = innovation_key
|every_alert_creatable_title = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|landed title
|-
|-
|every_alert_usurpable_title
| add_name_list
|Iterate through all titles that can be usurped by the character. (only for alerts)
| Adds the name list to the culture
|every_alert_usurpable_title = { limit = { <triggers> } <effects> }
| <pre><culture> = { add_name_list = name }</pre>
|character
| culture
|landed title
|-
|-
|every_ally
| add_random_innovation
|Iterate through all allies
| Add random available innovation<culture> = { add_random_innovation = culture_group_military/culture_group_civic/culture_group_regional/yes }
|every_ally = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|character
|-
|-
|every_ancestor
| add_random_valid_tradition
|Iterate through all the ancestors of the scope character up to 5 generations
| 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
|every_ancestor = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|character
| character
|-
|-
|every_army
| add_random_valid_tradition_replace_if_necessary
|Iterate through all armies
| 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
|every_army = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|army
| character
|-
|-
|every_character_to_title_neighboring_and_across_water_barony
| change_cultural_acceptance
|Scopes from a character to a neighboring barony (incl. across water, looking trough the de Jure lieges)
| Changes cultural acceptance with the target culture
|every_character_to_title_neighboring_and_across_water_barony = { limit = { <triggers> } <effects> }
| <pre>change_cultural_acceptance = {
|character
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
|-
|-
|every_character_to_title_neighboring_and_across_water_county
| clear_culture_traditions
|Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
| Removes all cultural traditions from the scope culture.clear_culture_traditions = yes
|every_character_to_title_neighboring_and_across_water_county = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|landed title
|-
|-
|every_character_to_title_neighboring_and_across_water_duchy
| copy_all_traditions_from
|Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| Replaces all traditions of scoped culture with traditions from the given culturecopy_all_traditions_from = scope:target_culture
|every_character_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|landed title
| culture
|-
|-
|every_character_to_title_neighboring_and_across_water_empire
| every_culture_county
|Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| Iterate through all counties of the culture
|every_character_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } <effects> }
| <pre>every_culture_county = { limit = { <triggers> } <effects> }</pre>
|character
| culture
|landed title
| landed title
|-
|-
|every_character_to_title_neighboring_and_across_water_kingdom
| every_culture_duchy
|Scopes from a character to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| Iterate through all duchies of the culture (duchies with at least one county of the culture
|every_character_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } <effects> }
| <pre>every_culture_duchy = { limit = { <triggers> } <effects> }</pre>
|character
| culture
|landed title
| landed title
|-
|-
|every_character_to_title_neighboring_barony
| every_culture_empire
|Scopes from a character to a neighboring barony (looking trough the de Jure lieges)
| Iterate through all empires of the culture (empires with at least one county of the culture
|every_character_to_title_neighboring_barony = { limit = { <triggers> } <effects> }
| <pre>every_culture_empire = { limit = { <triggers> } <effects> }</pre>
|character
| culture
|landed title
| landed title
|-
|-
|every_character_to_title_neighboring_county
| every_culture_kingdom
|Scopes from a character to a neighboring county (looking trough the de Jure lieges)
| Iterate through all kingdoms of the culture (kingdoms with at least one county of the culture
|every_character_to_title_neighboring_county = { limit = { <triggers> } <effects> }
| <pre>every_culture_kingdom = { limit = { <triggers> } <effects> }</pre>
|character
| culture
|landed title
| landed title
|-
|-
|every_character_to_title_neighboring_duchy
| every_parent_culture
|Scopes from a character to a neighboring duchy (looking trough the de Jure lieges)
| Iterate through all parent cultures
|every_character_to_title_neighboring_duchy = { limit = { <triggers> } <effects> }
| <pre>every_parent_culture = { limit = { <triggers> } <effects> }</pre>
|character
| culture
|landed title
| culture
|-
|-
|every_character_to_title_neighboring_empire
| every_parent_culture_or_above
|Scopes from a character to a neighboring empire (looking trough the de Jure lieges)
| Iterate through all parent cultures or above
|every_character_to_title_neighboring_empire = { limit = { <triggers> } <effects> }
| <pre>every_parent_culture_or_above = { limit = { <triggers> } <effects> }</pre>
|character
| culture
|landed title
| culture
|-
|-
|every_character_to_title_neighboring_kingdom
| get_all_innovations_from
|Scopes from a character to a neighboring kingdom (looking trough the de Jure lieges)
| Discover all innovations from the target culture
|every_character_to_title_neighboring_kingdom = { limit = { <triggers> } <effects> }
| <pre>get_all_innovations_from = <culture></pre>
|character
| culture
|landed title
| culture
|-
|-
|every_character_war
| get_random_innovation_from
|Wars of the scoped character
| Get random available innovation from another culture
|every_character_war = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|war
|-
|-
|every_child
| join_era
|Iterate through all children
| Joins all culture eras up to and including the given one
|every_child = { limit = { <triggers> } <effects> }
| <pre>join_era = culture_era_type</pre>
|character
| culture
|character
|-
|-
|every_claim
| leave_era
|Iterate through the titles of all claims held by a character; parameters: explicit = yes/no/all pressed = yes/no/all
| Leaves all culture eras down to and including the given one
|every_claim = { limit = { <triggers> } <effects> }
| <pre>leave_era = culture_era_type</pre>
|character
| culture
|landed title
|-
|-
|every_close_family_member
| ordered_culture_county
|Iterate through all the close family [father, mother, siblings, children, grandparents]
| Iterate through all counties of the culture
|every_close_family_member = { limit = { <triggers> } <effects> }
| <pre>ordered_culture_county = {
|character
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
| landed title
|-
|-
|every_close_or_extended_family_member
| ordered_culture_duchy
|Iterate through all the close and extended relatives [father, mother, siblings, children, grandparents, uncles/aunts, nephew/niece, cousins]
| Iterate through all duchies of the culture (duchies with at least one county of the culture
|every_close_or_extended_family_member = { limit = { <triggers> } <effects> }
| <pre>ordered_culture_duchy = {
|character
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
| landed title
|-
|-
|every_concubine
| ordered_culture_empire
|Iterate through all concubines
| Iterate through all empires of the culture (empires with at least one county of the culture
|every_concubine = { limit = { <triggers> } <effects> }
| <pre>ordered_culture_empire = {
|character
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
| landed title
|-
|-
|every_consort
| ordered_culture_kingdom
|Iterate through all consorts (concubines and spouses)
| Iterate through all kingdoms of the culture (kingdoms with at least one county of the culture
|every_consort = { limit = { <triggers> } <effects> }
| <pre>ordered_culture_kingdom = {
|character
limit = { <triggers> }
|character
order_by = script_value
|-
position = int
|every_councillor
min = int
|Iterate through all councillors
max = script_value
|every_councillor = { limit = { <triggers> } <effects> }
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
| culture
|-
| landed title
|every_courtier
|Iterate through all courtiers
|every_courtier = { limit = { <triggers> } <effects> }
|character
|character
|-
|-
|every_courtier_away
| ordered_parent_culture
|Iterate through all courtiers that are away
| Iterate through all parent cultures
|every_courtier_away = { limit = { <triggers> } <effects> }
| <pre>ordered_parent_culture = {
|character
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
|-
|-
|every_courtier_or_guest
| ordered_parent_culture_or_above
|Iterate through all courtiers and guests (pool and foreign court guests)
| Iterate through all parent cultures or above
|every_courtier_or_guest = { limit = { <triggers> } <effects> }
| <pre>ordered_parent_culture_or_above = {
|character
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
|-
|-
|every_de_jure_claim
| random_culture_county
|Iterate through all de jure claims for a character
| Iterate through all counties of the culture
|every_de_jure_claim = { limit = { <triggers> } <effects> }
| <pre>random_culture_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| culture
|landed title
| landed title
|-
|-
|every_diplomacy_councillor
| random_culture_duchy
|Iterate through all diplomacy-based councillors
| Iterate through all duchies of the culture (duchies with at least one county of the culture
|every_diplomacy_councillor = { limit = { <triggers> } <effects> }
| <pre>random_culture_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| culture
|character
| landed title
|-
|-
|every_directly_owned_province
| random_culture_empire
|Iterate through all directly owned provinces
| Iterate through all empires of the culture (empires with at least one county of the culture
|every_directly_owned_province = { limit = { <triggers> } <effects> }
| <pre>random_culture_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| culture
|province
| landed title
|-
|-
|every_election_title
| random_culture_kingdom
|Iterate through all titles the scoped character can vote on
| Iterate through all kingdoms of the culture (kingdoms with at least one county of the culture
|every_election_title = { limit = { <triggers> } <effects> }
| <pre>random_culture_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| culture
|landed title
| landed title
|-
|-
|every_extended_family_member
| random_parent_culture
|Iterate through all the extended family [uncles/aunts, nephew/niece, cousins]
| Iterate through all parent cultures
|every_extended_family_member = { limit = { <triggers> } <effects> }
| <pre>random_parent_culture = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| culture
|character
| culture
|-
|-
|every_foreign_court_guest
| random_parent_culture_or_above
|Iterate through all guests visiting from another court (in contrast to pool_guest they have a liege)
| Iterate through all parent cultures or above
|every_foreign_court_guest = { limit = { <triggers> } <effects> }
| <pre>random_parent_culture_or_above = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| culture
|character
| culture
|-
|-
|every_former_concubine
| remove_culture_tradition
|Iterate through all former concubines. Not persisted past death
| Removes the cultural tradition specified in the RHS from the scope culture.remove_culture_tradition = tradition_court_eunuchs
|every_former_concubine = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|character
|-
|-
|every_former_concubinist
| remove_innovation
|Iterate through all former concubinists. Not persisted past death
| Remove innovation from a culture. remove_innovation = innovation_key
|every_former_concubinist = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|character
|-
|-
|every_former_spouse
| remove_random_culture_tradition
|Iterate through all former spouses
| Removes a random cultural tradition from the scope culture.remove_random_culture_tradition = yes
|every_former_spouse = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|character
|-
|-
|every_general_councillor
| reset_culture_creation_date
|Iterate through all councillors that are not related to a skill
| Sets the culture creation date to be todays datereset_culture_creation_date = yes
|every_general_councillor = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|character
|-
|-
|every_heir
| set_cultural_acceptance
|Heirs of the scoped character
| Sets cultural acceptance with the target culture
|every_heir = { limit = { <triggers> } <effects> }
| <pre>set_cultural_accpetance = { target = <culture> value = script value }</pre>
|character
| culture
|character
|-
|-
|every_heir_title
| set_culture_name
|Iterate through all landed titles character is heir to
| Permanently sets the name of the scope culture to the parsed text from the provided localization string.
|every_heir_title = { limit = { <triggers> } <effects> }
| <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 = {
|character
noun = dynamic description
|landed title
collective_noun = dynamic description
prefix = dynamic description
}</pre>
| culture
|-
|-
|every_heir_to_title
| set_culture_pillar
|Iterate through all titles the scoped character is heir to
| Adds the current pillar specified in the RHS to the scope culture, replacing the pillar in the matching slot.set_culture_pillar = ethos_warmonger
|every_heir_to_title = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|landed title
|-
|-
|every_held_title
| set_ethos_from
|Iterate through all held landed titles
| Set the ethos from the RHS on the scope culture.set_ethos_from = culture:norwegian
|every_held_title = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|landed title
| culture
|-
|-
|every_hired_mercenary
| set_heritage_from
|Iterate through all hired mercenary companies
| Set the heritage from the RHS on the scope culture.set_heritage_from = culture:norwegian
|every_hired_mercenary = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|mercenary company
| culture
|-
|-
|every_hooked_character
| set_language_from
|Iterate through all characters this character has a hook on
| Set the language from the RHS on the scope culture.set_language_from = culture:norwegian
|every_hooked_character = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|character
| culture
|-
|-
|every_hostile_raider
| set_martial_custom_from
|Iterate through anyone the character is hostile to due to their top-liege's realm having been raided
| Set the martial custom from the RHS on the scope culture.set_martial_custom_from = culture:norwegian
|every_hostile_raider = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| culture
|character
| culture
|-
|-
|every_intrigue_councillor
| set_name_list
|Iterate through all intrigue-based councillors
| Remove all existing name lists then adds the specified name list to the culture
|every_intrigue_councillor = { limit = { <triggers> } <effects> }
| <pre><culture> = { set_name_list = name }</pre>
|character
| culture
|character
|-
|-
|every_knight
| end_story
|Iterate through all knights
| Ends a story and executes it's on_end effect, the story can no longer be accessed after this
|every_knight = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| story cycle
|character
|-
|-
|every_known_secret
| make_story_owner
|Iterate through all secrets known by the character
| = character_target  makes the character the new owner of the story
|every_known_secret = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| story cycle
|secret
| character
|-
|-
|every_learning_councillor
| change_war_chest_gold
|Iterate through all learning-based councillors
| Changes the amount of gold in the war chest by the given amount. change_war_chest_gold = script value
|every_learning_councillor = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| great holy war
|character
|-
|-
|every_liege_or_above
| change_war_chest_piety
|Iterate through all lieges above a character (skipping the character themselves)
| Changes the amount of piety in the war chest by the given amount. change_war_chest_piety = script value
|every_liege_or_above = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| great holy war
|character
|-
|-
|every_martial_councillor
| change_war_chest_prestige
|Iterate through all martial-based councillors
| Changes the amount of prestige in the war chest by the given amount. change_war_chest_prestige = script value
|every_martial_councillor = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| great holy war
|character
|-
|-
|every_neighboring_and_across_water_realm_same_rank_owner
| divide_war_chest
|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)
| The scoped GHW gives out its war-chest in full or in part.
|every_neighboring_and_across_water_realm_same_rank_owner = { limit = { <triggers> } <effects> }
| <pre>divide_war_chest = {
|character
defenders = yes (default to attackers instead)
|character
faction = script value (default 1 for 100%)
gold = no (default = yes)
piety = no (default = yes)
prestige = no (default = yes)
}</pre>
| great holy war
|-
|-
|every_neighboring_and_across_water_top_liege_realm
| do_ghw_title_handout
|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
| 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
|every_neighboring_and_across_water_top_liege_realm = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| great holy war
|landed title
| title and vassal change
|-
|-
|every_neighboring_and_across_water_top_liege_realm_owner
| every_pledged_attacker
|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 pledged attackers within a great holy war
|every_neighboring_and_across_water_top_liege_realm_owner = { limit = { <triggers> } <effects> }
| <pre>every_pledged_attacker = { limit = { <triggers> } <effects> }</pre>
|character
| great holy war
|character
| character
|-
|-
|every_neighboring_realm_same_rank_owner
| every_pledged_defender
|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 pledged defenders within a great holy war
|every_neighboring_realm_same_rank_owner = { limit = { <triggers> } <effects> }
| <pre>every_pledged_defender = { limit = { <triggers> } <effects> }</pre>
|character
| great holy war
|character
| character
|-
|-
|every_neighboring_top_liege_realm
| ordered_pledged_attacker
|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 pledged attackers within a great holy war
|every_neighboring_top_liege_realm = { limit = { <triggers> } <effects> }
| <pre>ordered_pledged_attacker = {
|character
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>
| great holy war
| character
|-
|-
|every_neighboring_top_liege_realm_owner
| ordered_pledged_defender
|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 pledged defenders within a great holy war
|every_neighboring_top_liege_realm_owner = { limit = { <triggers> } <effects> }
| <pre>ordered_pledged_defender = {
|character
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>
| great holy war
| character
|-
|-
|every_owned_story
| pledge_attacker
|Iterate through all owned stories for a character
| 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
|every_owned_story = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| great holy war
|story cycle
| character
|-
|-
|every_parent
| pledge_defender
|Iterate through all (both) parents
| 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
|every_parent = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| great holy war
|character
| character
|-
|-
|every_patroned_holy_order
| random_pledged_attacker
|Iterate through all holy orders that the scoped character is a patron of
| Iterate through all pledged attackers within a great holy war
|every_patroned_holy_order = { limit = { <triggers> } <effects> }
| <pre>random_pledged_attacker = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| great holy war
|holy order
| character
|-
|-
|every_pinned_character
| random_pledged_defender
|Iterate through characters this player has pinned
| Iterate through all pledged defenders within a great holy war
|every_pinned_character = { limit = { <triggers> } <effects> }
| <pre>random_pledged_defender = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| great holy war
|character
| character
|-
|-
|every_pinning_character
| reset_designated_winner
|Iterate through characters whose player has this character pinned
| The GHW stops having a designated winner. reset_designated_winner = yes
|every_pinning_character = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| great holy war
|character
|-
|-
|every_player_heir
| set_designated_winner
|Iterate through player heirs, capped at the first 10
| The target character becomes the designated winner of the GHW. set_designated_winner = some character
|every_player_heir = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| great holy war
|character
| character
|-
|-
|every_pool_guest
| set_great_holy_war_target
|Iterate through all guests visiting the court from the pool (in contrast to foreign_court_guest they don't have a liege)
| Sets the target of the great holy war.
|every_pool_guest = { limit = { <triggers> } <effects> }
| <pre>set_great_holy_war_target = { target_character = someone target_title = some title }</pre>
|character
| great holy war
|character
|-
|-
|every_potential_marriage_option
| set_war_declarer
|Iterate through all potential selectable marriage or betrohed options
| The target character becomes the character that should declare war instead of the religious head. set_war_declarer = some character
|every_potential_marriage_option = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| great holy war
|character
| character
|-
|-
|every_pretender_title
| start_ghw_war
|Iterate through all landed titles character is pretender to
| Starts the GHW war. start_ghw_war = undirected_great_holy_war
|every_pretender_title = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| great holy war
|landed title
|-
|-
|every_primary_war_enemy
| unpledge_attacker
|Iterate through all primary war enemies
| The target character removes their pledge as an attacker in the GHW. unpledge_attacker = some character
|every_primary_war_enemy = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| great holy war
|character
| character
|-
|-
|every_prisoner
| unpledge_defender
|Iterate through all prisoners
| The target character removes their pledge as a defender in the GHW. unpledge_defender = some character
|every_prisoner = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| great holy war
|character
| character
|-
|-
|every_prowess_councillor
| activate_holy_site
|Iterate through all prowess-based councillors
| Activate an inactive holy site<faith_scope> = { activate_holy_site = <holy_site_name> }
|every_prowess_councillor = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| faith
|character
|-
|-
|every_raid_target
| add_doctrine
|Iterate through anyone the character is hostile to due to having raided them. Only returns top lieges
| Add doctrine to faith<faith_scope> = { add_doctrine = <doctrine_name> }
|every_raid_target = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| faith
|character
|-
|-
|every_realm_county
| change_fervor
|Iterate through all counties in the realm. Based on top liege
| Changes the fervor of the faith by the given value. change_fervor = script value
|every_realm_county = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| faith
|landed title
|-
|-
|every_realm_de_jure_duchy
| deactivate_holy_site
|Iterate through all de jure duchies that have at least one county in the realm. Based on top liege
| Deactivate an active holy site<faith_scope> = { deactivate_holy_site = <holy_site_name> }
|every_realm_de_jure_duchy = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| faith
|landed title
|-
|-
|every_realm_de_jure_empire
| every_defensive_great_holy_wars
|Iterate through all de jure empire that have at least one county in the realm. Based on top liege
| Iterate through all great holy wars this faith is defending against
|every_realm_de_jure_empire = { limit = { <triggers> } <effects> }
| <pre>every_defensive_great_holy_wars = { limit = { <triggers> } <effects> }</pre>
|character
| faith
|landed title
| great holy war
|-
|-
|every_realm_de_jure_kingdom
| every_faith_character
|Iterate through all de jure kingdom that have at least one county in the realm. Based on top liege
| Iterate through characters of the scoped faith
|every_realm_de_jure_kingdom = { limit = { <triggers> } <effects> }
| <pre>every_faith_character = { limit = { <triggers> } <effects> }</pre>
|character
| faith
|landed title
| character
|-
|-
|every_realm_province
| every_faith_holy_order
|Iterate through all realm provinces of a character
| Iterate through all holy orders of the faith
|every_realm_province = { limit = { <triggers> } <effects> }
| <pre>every_faith_holy_order = { limit = { <triggers> } <effects> }</pre>
|character
| faith
|province
| holy order
|-
|-
|every_relation
| every_faith_playable_ruler
|Iterate through scripted relations of a given type or multiple types, if someone is multiple relations they will only be in the list once
| Iterate through playable rulers of the scoped faith
|every_relation = { limit = { <triggers> } <effects> }
| <pre>every_faith_playable_ruler = { limit = { <triggers> } <effects> }</pre>
|character
| faith
|character
| character
|-
|-
|every_scheme
| every_faith_ruler
|Iterate through all schemes owned by the character
| Iterate through rulers of the scoped faith
|every_scheme = { limit = { <triggers> } <effects> }
| <pre>every_faith_ruler = { limit = { <triggers> } <effects> }</pre>
|character
| faith
|scheme
| character
|-
|-
|every_secret
| every_holy_site
|Iterate through all secrets of the character
| Iterate through all holy site baronies of a faith
|every_secret = { limit = { <triggers> } <effects> }
| <pre>every_holy_site = { limit = { <triggers> } <effects> }</pre>
|character
| faith
|secret
| landed title
|-
|-
|every_sibling
| ordered_defensive_great_holy_wars
|Iterate through all siblings
| Iterate through all great holy wars this faith is defending against
|every_sibling = { limit = { <triggers> } <effects> }
| <pre>ordered_defensive_great_holy_wars = {
|character
limit = { <triggers> }
|character
order_by = script_value
|-
position = int
|every_spouse
min = int
|Iterate through all spouses
max = script_value
|every_spouse = { limit = { <triggers> } <effects> }
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
| faith
| great holy war
|-
|-
|every_spouse_candidate
| ordered_faith_character
|Iterate through all the spouse candidates of a character. WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
| Iterate through characters of the scoped faith
|every_spouse_candidate = { limit = { <triggers> } <effects> }
| <pre>ordered_faith_character = {
|character
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>
| faith
| character
|-
|-
|every_stewardship_councillor
| ordered_faith_holy_order
|Iterate through all stewardship-based councillors
| Iterate through all holy orders of the faith
|every_stewardship_councillor = { limit = { <triggers> } <effects> }
| <pre>ordered_faith_holy_order = {
|character
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>
| faith
| holy order
|-
|-
|every_sub_realm_barony
| ordered_faith_playable_ruler
|Iterate through all baronies in sub-realm
| Iterate through playable rulers of the scoped faith
|every_sub_realm_barony = { limit = { <triggers> } <effects> }
| <pre>ordered_faith_playable_ruler = {
|character
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>
| faith
| character
|-
|-
|every_sub_realm_county
| ordered_faith_ruler
|Iterate through all counties in sub-realm
| Iterate through rulers of the scoped faith
|every_sub_realm_county = { limit = { <triggers> } <effects> }
| <pre>ordered_faith_ruler = {
|character
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>
| faith
| character
|-
|-
|every_sub_realm_duchy
| ordered_holy_site
|Iterate through all duchies in sub-realm
| Iterate through all holy site baronies of a faith
|every_sub_realm_duchy = { limit = { <triggers> } <effects> }
| <pre>ordered_holy_site = {
|character
limit = { <triggers> }
|landed title
order_by = script_value
|-
position = int
|every_sub_realm_empire
min = int
|Iterate through all empires in sub-realm
max = script_value
|every_sub_realm_empire = { limit = { <triggers> } <effects> }
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|character
<effects> }</pre>
|landed title
| faith
|-
| 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
| random_defensive_great_holy_wars
|Iterate through all titles in sub-realm
| Iterate through all great holy wars this faith is defending against
|every_sub_realm_title = { limit = { <triggers> } <effects> }
| <pre>random_defensive_great_holy_wars = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| faith
|landed title
| great holy war
|-
|-
|every_targeting_faction
| random_faith_character
|Iterate through all factions targeting the scope character
| Iterate through characters of the scoped faith
|every_targeting_faction = { limit = { <triggers> } <effects> }
| <pre>random_faith_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| faith
|faction
| character
|-
|-
|every_targeting_scheme
| random_faith_holy_order
|Iterate through all schemes targeting the character
| Iterate through all holy orders of the faith
|every_targeting_scheme = { limit = { <triggers> } <effects> }
| <pre>random_faith_holy_order = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| faith
|scheme
| holy order
|-
|-
|every_targeting_secret
| random_faith_playable_ruler
|Iterate through all secrets that target the specified scope
| Iterate through playable rulers of the scoped faith
|every_targeting_secret = { limit = { <triggers> } <effects> }
| <pre>random_faith_playable_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| faith
|secret
| character
|-
|-
|every_traveling_family_member
| random_faith_ruler
|Iterate though all characters that should travel with the scoped one (when moving between courts for instance); includes the scoped character
| Iterate through rulers of the scoped faith
|every_traveling_family_member = { limit = { <triggers> } <effects> }
| <pre>random_faith_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| faith
|character
| character
|-
|-
|every_truce_holder
| random_holy_site
|Iterate through all characters that have a truce on this character
| Iterate through all holy site baronies of a faith
|every_truce_holder = { limit = { <triggers> } <effects> }
| <pre>random_holy_site = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| faith
|character
| landed title
|-
|-
|every_truce_target
| remove_doctrine
|Iterate through all characters this character has a truce on
| Remove doctrine from faith<faith_scope> = { remove_doctrine = <doctrine_name> }
|every_truce_target = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| faith
|character
|-
|-
|every_unspent_known_secret
| remove_religious_head_title
|Iterate through all unspent secrets known by the character
| Removes the religious head title of the faith
|every_unspent_known_secret = { limit = { <triggers> } <effects> }
| <pre>remove_religious_head_title = yes</pre>
|character
| faith
|secret
|-
|-
|every_vassal
| set_religious_head_title
|Iterate through all DIRECT vassals
| Sets the religious head title of the faith to the given title. set_religious_head_title = scope
|every_vassal = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| faith
|character
| landed title
|-
|-
|every_vassal_or_below
| start_great_holy_war
|Iterate through ALL vassals, not just direct vassals
| Starts a great holy war.
|every_vassal_or_below = { limit = { <triggers> } <effects> }
| <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>
|character
| faith
|character
|-
|-
|every_war_ally
| add_building
|Iterate through all direct war allies
| Add building to the province<province> = { add_building = <building_name> }
|every_war_ally = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| province
|character
|-
|-
|every_war_enemy
| add_building_slot
|Iterate through all direct war enemies
| Add building slot to the province
|every_war_enemy = { limit = { <triggers> } <effects> }
| <pre></pre>
|character
| province
|character
|-
|-
|execute_decision
| add_province_modifier
|Execute the specified decision for the scoped character
| Add a modifier to a province
|Unspecified
| <pre>add_province_modifier = name
|character
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
|-
|-
|finish_council_task
| add_special_building
|The councillor finish the current assigned task successfully.
| Add a special building to the province (will also add/change a special slot if needed)
|Unspecified
| <pre></pre>
|character
| province
|
|-
|fire_councillor
|The scope character fires the target character form teh council.
|Unspecified
|character
|character
|-
|-
|forbid_from_scheme
| add_special_building_slot
|Forbid the scope character from joining the target scheme as an agent (and kick the character out if already in the scheme)
| Add a special building slot to the province<province> = { add_special_building_slot = <building_name> }
|Unspecified
| <pre></pre>
|character
| province
|
|-
|-
|force_add_to_scheme
| begin_create_holding
|Adds a character as an agent to the scheme and forces them to stay
| Start construction of the specified holding type. By default player won't get anything if manually cancels the construction
force_add_to_scheme = {
| <pre>scope:my_province = {
   scheme = target_Scheme
begin_create_holding = castle_holding
   days/months/years = duration
}
}
|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
|-
|-
|force_vote_as
| generate_building
|Forces the character to vote the same as the target
| Adds a random building to the province, using the AI's construction logic<province> = { generate_building = yes }
|force_vote_as = { target = someone days/months/years = x }
| <pre></pre>
|character
| province
|
|-
|-
|get_title
| refill_garrison
|gives a title to a character
| The scoped province gets its garrison refilled. refill_levy = yes/no
|Unspecified
| <pre></pre>
|character
| province
|landed title
|-
|-
|give_nickname
| refill_levy
|Give a nickname to this character
| The scoped province gets its levy refilled. refill_levy = yes/no
|Unspecified
| <pre></pre>
|character
| province
|
|-
|-
|imprison
| remove_all_province_modifier_instances
|Imprisons the target character as this character's prisoner, imprison = { target = X reason = Y type = Z }, X is a character, Y is a flag, Z is a static modifier
| Remove all instances of a modifier from a province
|Unspecified
| <pre>remove_all_province_modifier_instances = name</pre>
|character
| province
|
|-
|-
|join_faction
| remove_building
|the character in the scope joins the assigned faction
| Remove building from the province<province> = { remove_building = <building_name> }
|Unspecified
| <pre></pre>
|character
| province
|
|-
|-
|join_faction_forced
| remove_holding
|the character in the scope is forced to join a faction by a character for a defined time,
| Removes the holding in scoped province, cannot remove capital holdings
|join_faction_forced = {
| <pre></pre>
   faction = X
| province
   forced_by = Y
   days/months/years = duration
}
|character
|-
|-
|join_faction_skip_check
| remove_province_modifier
|the character in the scope joins the assigned faction skiping the can_character_join trigger
| Remove a modifier from a province
|Unspecified
| <pre>remove_province_modifier = name</pre>
|character
| province
|
|-
|-
|leave_faction
| set_holding_type
|the charcter in the scope leaves the assigned faction
| Changes the scoped province's holding to another type, removing all buildings that are invalid for the new holding.
|Unspecified
| <pre>This might also allow to construct a new holding in an empty province, but it is untested.</pre>
|character
| province
|
|-
|-
|make_claim_strong
| spawn_activity
|makes a claim strong (character adds the claim if not having it already)
| 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
|Unspecified
| <pre></pre>
|character
| province
|landed title
|-
|-
|make_claim_weak
| every_killed_character
|makes a claim weak (character adds the claim if not having it already)
| Iterate through all kills of a character
|Unspecified
| <pre>every_killed_character = { limit = { <triggers> } <effects> }</pre>
|character
| character, artifact
|landed title
| character
|-
|-
|make_concubine
| ordered_killed_character
|Makes the target character a concubine of the scope character, the target should not be imprisoned
| Iterate through all kills of a character
|Unspecified
| <pre>ordered_killed_character = {
|character
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>
| character, artifact
| character
|-
|-
|make_pregnant
| random_killed_character
|makes a character pregnant
| Iterate through all kills of a character
|make_pregnant = {
| <pre>random_killed_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
father = 'the real father'
| character, artifact
number_of_children = X
| character
known_bastard = yes/no
|character
|
|-
|-
|make_trait_active
| activate_struggle_catalyst
|Activates an inactive trait. Tooltip will not be shown if the character cannot have the trait.
| Activate a catalyst
|Unspecified
| <pre>activate_struggle_catalyst = { catalyst = X character = Y} where X is a catalystY is scope:character # optionalsimplified: activate_struggle_catalyst = <catalyst></pre>
|character
| struggle
|
|-
|-
|make_trait_active_force_tooltip
| change_struggle_phase
|Activates an inactive trait. Tooltip will be shown even if the character cannot have the trait.
| Change the phase from the current one to a listed scripted phase
|Unspecified
| <pre>change_phase = X where X is a struggle phase type</pre>
|character
| struggle
|
|-
|-
|make_trait_inactive
| end_struggle
|Makes a current trait of a character inactive. Tooltip will not be shown if the character doesn't have the trait. NOTE: If the character doesn't currently have the trait, it will be added to the character!
| End a struggle
|Unspecified
| <pre>end_struggle = yes</pre>
|character
| struggle
|
|-
|-
|make_trait_inactive_force_tooltip
| every_interloper_ruler
|Makes a current trait of a character inactive. Tooltip will be shown even if the character doesn't have the trait. NOTE: If the character doesn't currently have the trait, it will be added to the character!
| Iterate through all characters that are interloper in a struggle.
|Unspecified
| <pre>every_interloper_ruler = { limit = { <triggers> } <effects> }</pre>
|character
| struggle
|
| character
|-
|-
|make_unprunable
| every_involved_ruler
|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
| Iterate through all characters that are involved in a struggle.
|Unspecified
| <pre>every_involved_ruler = { limit = { <triggers> } <effects> }</pre>
|character
| struggle
|
| character
|-
|-
|marry
| ordered_interloper_ruler
|Marries the scoped character to the target character
| Iterate through all characters that are interloper in a struggle.
|marry = target
| <pre>ordered_interloper_ruler = {
|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
|-
|ordered_alert_creatable_title
|Iterate through all titles that can be created by the character. (only for alerts)
|ordered_alert_creatable_title = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,290行: 第2,902行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| struggle
|landed title
| character
|-
|-
|ordered_alert_usurpable_title
| ordered_involved_ruler
|Iterate through all titles that can be usurped by the character. (only for alerts)
| Iterate through all characters that are involved in a struggle.
|ordered_alert_usurpable_title = {
| <pre>ordered_involved_ruler = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,303行: 第2,915行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| struggle
|landed title
| 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
|-
| random_involved_ruler
| Iterate through all characters that are involved in a struggle.
| <pre>random_involved_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| struggle
| character
|-
| set_culture_as_involved
| Set a culture as involved in the scoped Struggle.
| <pre></pre>
| struggle
| culture
|-
| set_culture_as_uninvolved
| Set a culture as uninvolved in the scoped Struggle.
| <pre></pre>
| struggle
| culture
|-
| set_faith_as_involved
| Set a faith as involved in the scoped Struggle.
| <pre></pre>
| struggle
| faith
|-
| set_faith_as_uninvolved
| Set a faith as uninvolved in the scoped Struggle.
| <pre></pre>
| 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)
| <pre></pre>
| scheme
|
|-
| add_scheme_progress
| Add progress to the scope scheme. (progress is in 0.0 - 100.0 range)
| <pre></pre>
| scheme
|
|-
| 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
|-
| expose_scheme
| Exposes the scheme to the defender
| <pre></pre>
| scheme
|
|-
| expose_scheme_agent
| Exposes the target character as an agent of the current scheme
| <pre></pre>
| scheme
| character
|-
|-
|ordered_ally
| ordered_scheme_agent
|Iterate through all allies
| Iterate through all agents in the scheme
|ordered_ally = {
| <pre>ordered_scheme_agent = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,316行: 第3,000行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| scheme
|character
| character
|-
| random_scheme_agent
| Iterate through all agents in the scheme
| <pre>random_scheme_agent = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| scheme
| character
|-
| remove_scheme_modifier
| removes the specified scheme modifier
| <pre></pre>
| scheme
|
|-
| scheme_freeze_days
| scheme_freeze_days = X freezes the scheme for X days (0 unfreezes the scheme)
| <pre></pre>
| scheme
|
|-
| change_inspiration_progress
| change_progress = int
| <pre>Changes the progress of the scoped inspiration</pre>
| inspiration
|
|-
| invest_gold
| invest_gold = value
| <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>
| inspiration
|
|-
| add_secret_participant
| Adds an participant to the secret
| <pre></pre>
| secret
| character
|-
| disable_exposure_by
| Forbids the target character from exposing the secret, disable_exposure_by = target_character
| <pre></pre>
| secret
| character
|-
| every_secret_knower
| Iterate through all characters who know the secret
| <pre>every_secret_knower = { limit = { <triggers> } <effects> }</pre>
| secret
| character
|-
| every_secret_participant
| Iterate through participants in a secret
| <pre>every_secret_participant = { limit = { <triggers> } <effects> }</pre>
| secret
| character
|-
| expose_secret
| Exposes the scope secret
| <pre></pre>
| secret
| character
|-
|-
|ordered_ancestor
| ordered_secret_knower
|Iterate through all the ancestors of the scope character up to 5 generations
| Iterate through all characters who know the secret
|ordered_ancestor = {
| <pre>ordered_secret_knower = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,329行: 第3,073行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| secret
|character
| character
|-
|-
|ordered_army
| ordered_secret_participant
|Iterate through all armies
| Iterate through participants in a secret
|ordered_army = {
| <pre>ordered_secret_participant = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,342行: 第3,086行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| secret
|army
| character
|-
| random_secret_knower
| Iterate through all characters who know the secret
| <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
|-
|-
|ordered_character_to_title_neighboring_and_across_water_barony
| remove_secret
|Scopes from a character to a neighboring barony (incl. across water, looking trough the de Jure lieges)
| Removes the scope secret
|ordered_character_to_title_neighboring_and_across_water_barony = {
| <pre></pre>
limit = { <triggers> }
| secret
order_by = script_value
|
position = int
|-
min = int
| reveal_to
max = script_value
| Reveals the scope secret to the target character
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre></pre>
<effects> }
| secret
|character
| character
|landed title
|-
| set_secret_owner
| Sets a new owner for the secret
| <pre></pre>
| secret
| character
|-
| spend_by
| Spends the scope secret, spend_by = target_character
| <pre></pre>
| secret
| 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
| Adds dynasty perk. add_dynasty_perk = key
| <pre></pre>
| dynasty
|
|-
| add_dynasty_prestige
| adds dynasty prestige
| <pre></pre>
| dynasty
|
|-
| add_dynasty_prestige_level
| adds dynasty prestige levels
| <pre></pre>
| dynasty
|
|-
| every_dynasty_member
| Iterate through all dynasty members
| <pre>every_dynasty_member = { limit = { <triggers> } <effects> }</pre>
| dynasty
| character
|-
|-
|ordered_character_to_title_neighboring_and_across_water_county
| ordered_dynasty_member
|Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
| Iterate through all dynasty members
|ordered_character_to_title_neighboring_and_across_water_county = {
| <pre>ordered_dynasty_member = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,368行: 第3,167行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| dynasty
|landed title
| character
|-
| random_dynasty_member
| Iterate through all dynasty members
| <pre>random_dynasty_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| dynasty
| character
|-
| remove_all_dynasty_modifier_instances
| 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>
| dynasty
|
|-
| set_dynasty_name
| Sets dynasty name
| <pre>set_dynasty_name=loc_key</pre>
| dynasty
|
|-
| every_leased_title
| Iterate through all titles leased to a holy order
| <pre>every_leased_title = { limit = { <triggers> } <effects> }</pre>
| holy order
| landed title
|-
|-
|ordered_character_to_title_neighboring_and_across_water_duchy
| ordered_leased_title
|Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| Iterate through all titles leased to a holy order
|ordered_character_to_title_neighboring_and_across_water_duchy = {
| <pre>ordered_leased_title = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第2,381行: 第3,216行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| holy order
|landed title
| landed title
|-
| random_leased_title
| Iterate through all titles leased to a holy order
| <pre>random_leased_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| holy order
| landed title
|-
|-
|ordered_character_to_title_neighboring_and_across_water_empire
| add_diplomacy_skill
|Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| Adds diplomacy skill
|ordered_character_to_title_neighboring_and_across_water_empire = {
| <pre></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> }
|character
|landed title
|-
|-
|ordered_character_to_title_neighboring_and_across_water_kingdom
| add_focus_progress
|Scopes from a character to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| Adds focus progress
|ordered_character_to_title_neighboring_and_across_water_kingdom = {
| <pre></pre>
limit = { <triggers> }
| none
order_by = script_value
|
position = int
|-
min = int
| add_internal_flag
max = script_value
| adds effect to be read internally (no effect in the gamestate)
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre></pre>
<effects> }
| none
|character
|landed title
|-
|-
|ordered_character_to_title_neighboring_barony
| add_intrigue_skill
|Scopes from a character to a neighboring barony (looking trough the de Jure lieges)
| Adds intrigue skill
|ordered_character_to_title_neighboring_barony = {
| <pre></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> }
|character
|landed title
|-
|-
|ordered_character_to_title_neighboring_county
| add_learning_skill
|Scopes from a character to a neighboring county (looking trough the de Jure lieges)
| Adds learning skill
|ordered_character_to_title_neighboring_county = {
| <pre></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> }
|character
|landed title
|-
|-
|ordered_character_to_title_neighboring_duchy
| add_martial_skill
|Scopes from a character to a neighboring duchy (looking trough the de Jure lieges)
| Adds martial skill
|ordered_character_to_title_neighboring_duchy = {
| <pre></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> }
|character
|landed title
|-
|-
|ordered_character_to_title_neighboring_empire
| add_prowess_skill
|Scopes from a character to a neighboring empire (looking trough the de Jure lieges)
| Adds prowess skill
|ordered_character_to_title_neighboring_empire = {
| <pre></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> }
|character
|landed title
|-
|-
|ordered_character_to_title_neighboring_kingdom
| add_stewardship_skill
|Scopes from a character to a neighboring kingdom (looking trough the de Jure lieges)
| Adds stewardship skill
|ordered_character_to_title_neighboring_kingdom = {
| <pre></pre>
limit = { <triggers> }
| none
order_by = script_value
|
position = int
|-
min = int
| add_title_law
max = script_value
| add law to scoped title, overriding any current law from the same group. DOES NOT apply law change costs and effects.
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre>add_title_law = princely_elective_succession_law</pre>
<effects> }
| none
|character
|
|landed title
|-
| 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
|-
|-
|ordered_character_war
| add_to_global_variable_list
|Wars of the scoped character
| Adds the event target to a variable list
|ordered_character_war = {
| <pre>add_to_variable_list = { name = X target = Y }
limit = { <triggers> }
Where X is the name of the variable
order_by = script_value
Where Y is an event target</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> }
|character
|war
|-
|-
|ordered_child
| add_to_list
|Iterate through all children
| 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
|ordered_child = {
| <pre>add_to_list = <string> NOTE, if adding a permanent target to a temporary list, the whole list becomes permanent</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> }
|character
|character
|-
|-
|ordered_claim
| add_to_local_variable_list
|Iterate through the titles of all claims held by a character; parameters: explicit = yes/no/all pressed = yes/no/all
| Adds the event target to a variable list
|ordered_claim = {
| <pre>add_to_variable_list = { name = X target = Y }
limit = { <triggers> }
Where X is the name of the variable
order_by = script_value
Where Y is an event target</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> }
|character
|landed title
|-
|-
|ordered_close_family_member
| add_to_temporary_list
|Iterate through all the close family [father, mother, siblings, children, grandparents]
| 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
|ordered_close_family_member = {
| <pre>add_to_temporary_list = <string> NOTE, if adding a temporary target to a permanent list, the list will stay permanent</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> }
|character
|character
|-
|-
|ordered_close_or_extended_family_member
| add_to_variable_list
|Iterate through all the close and extended relatives [father, mother, siblings, children, grandparents, uncles/aunts, nephew/niece, cousins]
| Adds the event target to a variable list
|ordered_close_or_extended_family_member = {
| <pre>add_to_variable_list = { name = X target = Y }
limit = { <triggers> }
Where X is the name of the variable
order_by = script_value
Where Y is an event target</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> }
|character
|character
|-
|-
|ordered_concubine
| assert_if
|Iterate through all concubines
| Conditionally cause an assert during run time
|ordered_concubine = {
| <pre>assert_if = { limit = { X } text = Y }, where X is a trigger and Y is an optional string</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> }
|character
|character
|-
|-
|ordered_consort
| assert_read
|Iterate through all consorts (concubines and spouses)
| Conditionally cause an assert during read time
|ordered_consort = {
| <pre>assert_read = X, where X is yes or the string to be printed in the assert</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> }
|character
|character
|-
|-
|ordered_councillor
| break_betrothal
|Iterate through all councillors
| Breaks the betrothal between the scope character to the target character, break_betrothal = target
|ordered_councillor = {
| <pre></pre>
limit = { <triggers> }
| none
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> }
|character
|character
|-
|-
|ordered_courtier
| change_global_variable
|Iterate through all courtiers
| Changes the value or a numeric variable
|ordered_courtier = {
| <pre>change_variable = { name = X operation = Y }
limit = { <triggers> }
Where X is the name of the numeric variable to modify
order_by = script_value
Where the valid operations are add, subtract, multiply, divide and modulo
position = int
Where Y is a fixed point value, script value or event target of a value type</pre>
min = int
| none
max = 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
| change_local_variable
|Iterate through all courtiers that are away
| Changes the value or a numeric variable
|ordered_courtier_away = {
| <pre>change_variable = { name = X operation = Y }
limit = { <triggers> }
Where X is the name of the numeric variable to modify
order_by = script_value
Where the valid operations are add, subtract, multiply, divide and modulo
position = int
Where Y is a fixed point value, script value or event target of a value type</pre>
min = int
| none
max = 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
| change_title_holder
|Iterate through all courtiers and guests (pool and foreign court guests)
| = {
|ordered_courtier_or_guest = {
| <pre>holder = 'Character that should get the title'
limit = { <triggers> }
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>
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> }
|character
|character
|-
|-
|ordered_de_jure_claim
| change_title_holder_include_vassals
|Iterate through all de jure claims for a character
| = {
|ordered_de_jure_claim = {
| <pre>holder = 'Character that should get the title'
limit = { <triggers> }
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>
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> }
|character
|landed title
|-
|-
|ordered_diplomacy_councillor
| change_variable
|Iterate through all diplomacy-based councillors
| Changes the value or a numeric variable
|ordered_diplomacy_councillor = {
| <pre>change_variable = { name = X operation = Y }
limit = { <triggers> }
Where X is the name of the numeric variable to modify
order_by = script_value
Where the valid operations are add, subtract, multiply, divide and modulo
position = int
Where Y is a fixed point value, script value or event target of a value type</pre>
min = int
| none
max = script_value
|
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|-
<effects> }
| clamp_global_variable
|character
| Clamps a variable the specified max and min
|character
| <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
|
|-
| clamp_local_variable
| Clamps a variable the specified max and min
| <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
|-
|-
|ordered_directly_owned_province
| clamp_variable
|Iterate through all directly owned provinces
| Clamps a variable the specified max and min
|ordered_directly_owned_province = {
| <pre>clamp_variable = { name = X max = Y min = Z }
limit = { <triggers> }
Where X is the name of the variable
order_by = script_value
Where Y and Z are script values</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> }
|character
|province
|-
|-
|ordered_election_title
| clear_global_variable_list
|Iterate through all titles the scoped character can vote on
| Empties the list
|ordered_election_title = {
| <pre>clear_variable_list = variable_name</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> }
|character
|landed title
|-
|-
|ordered_extended_family_member
| clear_local_variable_list
|Iterate through all the extended family [uncles/aunts, nephew/niece, cousins]
| Empties the list
|ordered_extended_family_member = {
| <pre>clear_variable_list = variable_name</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> }
|character
|character
|-
|-
|ordered_foreign_court_guest
| clear_saved_scope
|Iterate through all guests visiting from another court (in contrast to pool_guest they have a liege)
| Clears a saved scope from the top scope
|ordered_foreign_court_guest = {
| <pre>save_scope_as = cool_scope -> clear_saved_scope = cool_scope</pre>
limit = { <triggers> }
| none
order_by = script_value
|
position = int
|-
min = int
| clear_traits
max = script_value
| Removes all traits for the character. clear_traits = yes
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre></pre>
<effects> }
| none
|character
|
|character
|-
| clear_variable_list
| Empties the list
| <pre>clear_variable_list = variable_name</pre>
| none
|-
|-
|ordered_former_concubine
| close_all_views
|Iterate through all former concubines. Not persisted past death
| Closes all views. close_all_views = yes
|ordered_former_concubine = {
| <pre></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> }
|character
|character
|-
|-
|ordered_former_concubinist
| close_view
|Iterate through all former concubinists. Not persisted past death
| Tries to close the defined view.
|ordered_former_concubinist = {
| <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.
limit = { <triggers> }
close_view = {
order_by = script_value
   view = <view name>
position = int
   player = scope:character # optional, else closes for all players who execute the effect
min = int
}simplified: close_view = <view name></pre>
max = script_value
| none
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
| copy_traits
|Iterate through all former spouses
| 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
|ordered_former_spouse = {
| <pre></pre>
limit = { <triggers> }
| none
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> }
|character
|character
|-
|-
|ordered_general_councillor
| create_betrothal
|Iterate through all councillors that are not related to a skill
| Betroth the scope character to the target character, create_betrothal = target (at least one of the characters need to not be adult)
|ordered_general_councillor = {
| <pre></pre>
limit = { <triggers> }
| none
order_by = script_value
| character
position = int
|-
min = int
| create_betrothal_matrilineal
max = script_value
| Betroth the scope character to the target character matrilineally, create_betrothal_matrilineal = target (at least one of the characters need to not be adult)
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre></pre>
<effects> }
| none
|character
| character
|character
|-
| create_character
| Creates a character
| <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
|-
|-
|ordered_heir
| create_dynamic_title
|Heirs of the scoped character
| Creates a dynamic title
|ordered_heir = {
| <pre>The title will be saved to scope:new_titleusage:
limit = { <triggers> }
create_dynamic_title = {
order_by = script_value
tier = <tier>
position = int
name = key/dynamic description adjective = key/dynamic description (optional; name used if not specified)}</pre>
min = int
| none
max = 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
| create_holy_order
|Iterate through all landed titles character is heir to
| Create a new holy order
|ordered_heir_title = {
| <pre>create_holy_order = {
limit = { <triggers> }
   leader = scope:a_character
order_by = script_value
   capital = scope:a_barony_title
position = int
   save_scope_as/save_temporary_scope_as = new_holy_order # optional way to get a reference to the new holy order
min = int
}</pre>
max = script_value
| none
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
| create_title_and_vassal_change
|Iterate through all titles the scoped character is heir to
| starts a title and vassal change and saves it as a temporary event target
|ordered_heir_to_title = {
| <pre>create_title_and_vassal_change = {
limit = { <triggers> }
type = conquest (or other type)
order_by = script_value
save_scope_as = change (name of resulting saved scope)
position = int
add_claim_on_loss = yes (optional)
min = int
}</pre>
max = script_value
| none
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
| custom_description_no_bullet
|Iterate through all held landed titles
| Wraps effects that get a custom description instead of the auto-generated one. Also ensures no bullet point appears
|ordered_held_title = {
| <pre>custom_description_no_bullet = {
limit = { <triggers> }
text = <effect_localization_key>
order_by = script_value
subject = <optional subject scope> #defaults to current scope
position = int
object = <optional object scope>
min = int
value = <optional script value>
max = script_value
... effects ...
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
}</pre>
<effects> }
| none
|character
|
|landed title
|-
| 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>
| 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
| <pre></pre>
| none
|
|-
| debug_log_date
| Logs the current date to the debug.log
| <pre></pre>
| none
|-
|-
|ordered_hired_mercenary
| debug_log_scopes
|Iterate through all hired mercenary companies
| Log the current scope to the debug log when this effect executes yes = full scope info, no=only current scope
|ordered_hired_mercenary = {
| <pre></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> }
|character
|mercenary company
|-
|-
|ordered_hooked_character
| debug_trigger_event
|Iterate through all characters this character has a hook on
| Like trigger_event, except it'll print the trigger fulfillment and immediate effects of the event too
|ordered_hooked_character = {
| <pre></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> }
|character
|character
|-
|-
|ordered_hostile_raider
| destroy_artifact
|Iterate through anyone the character is hostile to due to their top-liege's realm having been raided
| Destroy given artifact
|ordered_hostile_raider = {
| <pre>destroy_artifact = artifact</pre>
limit = { <triggers> }
| none
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> }
|character
|character
|-
|-
|ordered_intrigue_councillor
| destroy_inspiration
|Iterate through all intrigue-based councillors
| destroy_inspiration = inspiration
|ordered_intrigue_councillor = {
| <pre>Destroys the targeted inspiration, do not use the destroyed scope after calling this since it will have been removed</pre>
limit = { <triggers> }
| none
order_by = script_value
| inspiration
position = int
|-
min = int
| divorce
max = script_value
| Divorces the scope character from the target character. divorce = target
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre></pre>
<effects> }
| none
|character
| character
|character
|-
|-
|ordered_knight
| duel
|Iterate through all knights
| 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
|ordered_knight = {
| <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> }
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
|character
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
|character
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
|-
|-
|ordered_known_secret
| else
|Iterate through all secrets known by the character
| Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met
|ordered_known_secret = {
| <pre>if = { limit = { <triggers> } <effects> }
limit = { <triggers> }
else = { <effects> }</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> }
|character
|secret
|-
|-
|ordered_learning_councillor
| else_if
|Iterate through all learning-based councillors
| Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met, and its own limit is met
|ordered_learning_councillor = {
| <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>Stops the sponsorship of the targeted inspiration</pre>
|character
| none
|character
| inspiration
|-
| every_artifact
| Iterate through all existing artifacts
| <pre>every_artifact = { limit = { <triggers> } <effects> }</pre>
| none
| artifact
|-
| every_barony
| Iterate through all baronies in the game
| <pre>every_barony = { limit = { <triggers> } <effects> }</pre>
| none
| landed title
|-
|-
|ordered_liege_or_above
| every_character_with_royal_court
|Iterate through all lieges above a character (skipping the character themselves)
| Iterate through all characters with a royal court
|ordered_liege_or_above = {
| <pre>every_character_with_royal_court = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| none
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> }
|character
|character
|-
|-
|ordered_martial_councillor
| every_county
|Iterate through all martial-based councillors
| Iterate through all counties in the game
|ordered_martial_councillor = {
| <pre>every_county = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| landed title
position = int
min = int
max = 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
| every_county_in_region
|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 counties in the region. Put 'region = region_name' inside it
|ordered_neighboring_and_across_water_realm_same_rank_owner = {
| <pre>every_county_in_region = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| landed title
position = int
min = int
max = 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
| every_culture_global
|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 cultures in the game
|ordered_neighboring_and_across_water_top_liege_realm = {
| <pre>every_culture_global = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| culture
position = int
|-
min = int
| every_duchy
max = script_value
| Iterate through all duchies 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_duchy = { limit = { <triggers> } <effects> }</pre>
<effects> }
| none
|character
| landed title
|landed title
|-
|-
|ordered_neighboring_and_across_water_top_liege_realm_owner
| every_empire
|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 empires in the game
|ordered_neighboring_and_across_water_top_liege_realm_owner = {
| <pre>every_empire = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| landed title
position = int
min = int
max = 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
| every_in_global_list
|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 items in global list. list = name or variable = name
|ordered_neighboring_realm_same_rank_owner = {
| <pre>every_in_global_list = { limit = { <triggers> } <effects> }</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> }
|character
|character
|-
|-
|ordered_neighboring_top_liege_realm
| every_in_list
|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 items in list. list = name or variable = name
|ordered_neighboring_top_liege_realm = {
| <pre>every_in_list = { limit = { <triggers> } <effects> }</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> }
|character
|landed title
|-
|-
|ordered_neighboring_top_liege_realm_owner
| every_in_local_list
|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 items in local list. list = name or variable = name
|ordered_neighboring_top_liege_realm_owner = {
| <pre>every_in_local_list = { limit = { <triggers> } <effects> }</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> }
|character
|character
|-
|-
|ordered_owned_story
| every_independent_ruler
|Iterate through all owned stories for a character
| Independent rulers list with a COUNT tier or above who hold land
|ordered_owned_story = {
| <pre>every_independent_ruler = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| none
| character
|-
| every_inspiration
| Iterate through all inspirations in the world
| <pre>every_inspiration = { limit = { <triggers> } <effects> }</pre>
| none
| inspiration
|-
| every_inspired_character
| Iterate through all characters with an inspirations in the world
| <pre>every_inspired_character = { limit = { <triggers> } <effects> }</pre>
| none
| character
|-
| every_kingdom
| Iterate through all kingdoms in the game
| <pre>every_kingdom = { limit = { <triggers> } <effects> }</pre>
| none
| landed title
|-
| every_living_character
| Iterate through all living characters
| <pre>every_living_character = { limit = { <triggers> } <effects> }</pre>
| none
| character
|-
| every_player
| Iterate through all player characters
| <pre>every_player = { limit = { <triggers> } <effects> }</pre>
| none
| character
|-
| every_pool_character
| Iterate through all characters in the pool of the given province
| <pre>every_pool_character = { limit = { <triggers> } <effects> }</pre>
| none
| character
|-
| every_province
| Iterate through all provinces (skips non-land and impassable provinces)
| <pre>every_province = { limit = { <triggers> } <effects> }</pre>
| none
| province
|-
| every_religion_global
| Iterate through all religions in the game
| <pre>every_religion_global = { limit = { <triggers> } <effects> }</pre>
| none
| religion
|-
| every_ruler
| Rulers list with a COUNT tier o above
| <pre>every_ruler = { limit = { <triggers> } <effects> }</pre>
| 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!
| <pre></pre>
| none
|
|-
| if
| Executes enclosed effects if limit criteria are met
| <pre>if = { limit = { <triggers> } <effects> }</pre>
| none
|
|-
| multiply_focus_progress
| Multiplies focus progress
| <pre></pre>
| none
|
|-
| open_interaction_window
| Tries to open the defined view.
| <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
|
|-
| open_view
| Tries to open the defined view without scope data.
| <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
|
|-
| open_view_data
| Tries to open the defined view with scope data.
| <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
|
|-
| ordered_artifact
| Iterate through all existing artifacts
| <pre>ordered_artifact = {
limit = { <triggers> }
order_by = script_value
order_by = script_value
position = int
position = int
第3,005行: 第3,824行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|story cycle
| artifact
|-
|-
|ordered_parent
| ordered_barony
|Iterate through all (both) parents
| Iterate through all baronies in the game
|ordered_parent = {
| <pre>ordered_barony = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,018行: 第3,837行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|character
| landed title
|-
|-
|ordered_patroned_holy_order
| ordered_character_with_royal_court
|Iterate through all holy orders that the scoped character is a patron of
| Iterate through all characters with a royal court
|ordered_patroned_holy_order = {
| <pre>ordered_character_with_royal_court = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,031行: 第3,850行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|holy order
| character
|-
|-
|ordered_pinned_character
| ordered_county
|Iterate through characters this player has pinned
| Iterate through all counties in the game
|ordered_pinned_character = {
| <pre>ordered_county = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,044行: 第3,863行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|character
| landed title
|-
|-
|ordered_pinning_character
| ordered_county_in_region
|Iterate through characters whose player has this character pinned
| Iterate through all counties in the region. Put 'region = region_name' inside it
|ordered_pinning_character = {
| <pre>ordered_county_in_region = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,057行: 第3,876行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|character
| landed title
|-
|-
|ordered_player_heir
| ordered_culture_global
|Iterate through player heirs, capped at the first 10
| Iterate through all cultures in the game
|ordered_player_heir = {
| <pre>ordered_culture_global = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,070行: 第3,889行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|character
| culture
|-
|-
|ordered_pool_guest
| ordered_duchy
|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 duchies in the game
|ordered_pool_guest = {
| <pre>ordered_duchy = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,083行: 第3,902行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|character
| landed title
|-
|-
|ordered_potential_marriage_option
| ordered_empire
|Iterate through all potential selectable marriage or betrohed options
| Iterate through all empires in the game
|ordered_potential_marriage_option = {
| <pre>ordered_empire = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,096行: 第3,915行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|character
| landed title
|-
|-
|ordered_pretender_title
| ordered_in_global_list
|Iterate through all landed titles character is pretender to
| Iterate through all items in global list. list = name or variable = name
|ordered_pretender_title = {
| <pre>ordered_in_global_list = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,109行: 第3,928行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|landed title
|-
|-
|ordered_primary_war_enemy
| ordered_in_list
|Iterate through all primary war enemies
| Iterate through all items in list. list = name or variable = name
|ordered_primary_war_enemy = {
| <pre>ordered_in_list = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,122行: 第3,941行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|character
|-
|-
|ordered_prisoner
| ordered_in_local_list
|Iterate through all prisoners
| Iterate through all items in local list. list = name or variable = name
|ordered_prisoner = {
| <pre>ordered_in_local_list = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,135行: 第3,954行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|character
|-
|-
|ordered_prowess_councillor
| ordered_independent_ruler
|Iterate through all prowess-based councillors
| Independent rulers list with a COUNT tier or above who hold land
|ordered_prowess_councillor = {
| <pre>ordered_independent_ruler = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,148行: 第3,967行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|character
| character
|-
|-
|ordered_raid_target
| ordered_inspiration
|Iterate through anyone the character is hostile to due to having raided them. Only returns top lieges
| Iterate through all inspirations in the world
|ordered_raid_target = {
| <pre>ordered_inspiration = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,161行: 第3,980行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|character
| inspiration
|-
|-
|ordered_realm_county
| ordered_inspired_character
|Iterate through all counties in the realm. Based on top liege
| Iterate through all characters with an inspirations in the world
|ordered_realm_county = {
| <pre>ordered_inspired_character = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,174行: 第3,993行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|landed title
| character
|-
|-
|ordered_realm_de_jure_duchy
| ordered_kingdom
|Iterate through all de jure duchies that have at least one county in the realm. Based on top liege
| Iterate through all kingdoms in the game
|ordered_realm_de_jure_duchy = {
| <pre>ordered_kingdom = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,187行: 第4,006行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|landed title
| landed title
|-
|-
|ordered_realm_de_jure_empire
| ordered_living_character
|Iterate through all de jure empire that have at least one county in the realm. Based on top liege
| Iterate through all living characters
|ordered_realm_de_jure_empire = {
| <pre>ordered_living_character = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,200行: 第4,019行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|landed title
| character
|-
|-
|ordered_realm_de_jure_kingdom
| ordered_player
|Iterate through all de jure kingdom that have at least one county in the realm. Based on top liege
| Iterate through all player characters
|
| <pre>ordered_player = {
|ordered_realm_de_jure_kingdom = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,214行: 第4,032行:
max = script_value
max = script_value
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>
<effects> }</pre>
}
| none
|character
| character
|landed title
|-
|-
|ordered_realm_province
| ordered_pool_character
|Iterate through all realm provinces of a character
| Iterate through all characters in the pool of the given province
|ordered_realm_province = {
| <pre>ordered_pool_character = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,228行: 第4,045行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|province
| character
|-
|-
|ordered_relation
| ordered_province
|Iterate through scripted relations of a given type or multiple types, if someone is multiple relations they will only be in the list once
| Iterate through all provinces (skips non-land and impassable provinces)
|ordered_relation = {
| <pre>ordered_province = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,241行: 第4,058行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|character
| province
|-
|-
|ordered_scheme
| ordered_religion_global
|Iterate through all schemes owned by the character
| Iterate through all religions in the game
|ordered_scheme = {
| <pre>ordered_religion_global = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,254行: 第4,071行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|scheme
| religion
|-
|-
|ordered_secret
| ordered_ruler
|Iterate through all secrets of the character
| Rulers list with a COUNT tier o above
|ordered_secret = {
| <pre>ordered_ruler = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第3,267行: 第4,084行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|character
| none
|secret
| character
|-
| pan_camera_to_province
| Pans the camera to the specified province
| <pre>pan_camera_to_province = scope:army.location</pre>
| none
| province
|-
|-
|ordered_sibling
| pan_camera_to_title
|Iterate through all siblings
| Pans the camera to the specified title
|ordered_sibling = {
| <pre>pan_camera_to_title = capital_barony</pre>
limit = { <triggers> }
| none
order_by = script_value
| landed title
position = int
min = int
max = 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
| random_artifact
|Iterate through all spouses
| Iterate through all existing artifacts
|ordered_spouse = {
| <pre>random_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
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> }
|character
|character
|-
|-
|ordered_spouse_candidate
| random_barony
|Iterate through all the spouse candidates of a character. WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
| Iterate through all baronies in the game
|ordered_spouse_candidate = {
| <pre>random_barony = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| landed title
position = int
min = int
max = 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
| random_character_with_royal_court
|Iterate through all stewardship-based councillors
| Iterate through all characters with a royal court
|ordered_stewardship_councillor = {
| <pre>random_character_with_royal_court = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
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> }
|character
|character
|-
|-
|ordered_sub_realm_barony
| random_county
|Iterate through all baronies in sub-realm
| Iterate through all counties in the game
|ordered_sub_realm_barony = {
| <pre>random_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| landed title
position = int
min = int
max = 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
| random_county_in_region
|Iterate through all counties in sub-realm
| Iterate through all counties in the region. Put 'region = region_name' inside it
|ordered_sub_realm_county = {
| <pre>random_county_in_region = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| landed title
position = int
min = int
max = 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
| random_culture_global
|Iterate through all duchies in sub-realm
| Iterate through all cultures in the game
|ordered_sub_realm_duchy = {
| <pre>random_culture_global = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| culture
position = int
min = int
max = 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
| random_duchy
|Iterate through all empires in sub-realm
| Iterate through all duchies in the game
|ordered_sub_realm_empire = {
| <pre>random_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| landed title
position = int
|-
min = int
| random_empire
max = script_value
| Iterate through all empires 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>random_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
<effects> }
| none
|character
| landed title
|landed title
|-
| random_in_global_list
| Iterate through all items in global list. list = name or variable = name
| <pre>random_in_global_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
|
|-
| random_in_list
| Iterate through all items in list. list = name or variable = name
| <pre>random_in_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| none
|-
|-
|ordered_sub_realm_kingdom
| random_in_local_list
|Iterate through all kingdoms in sub-realm
| Iterate through all items in local list. list = name or variable = name
|ordered_sub_realm_kingdom = {
| <pre>random_in_local_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</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> }
|character
|landed title
|-
|-
|ordered_sub_realm_title
| random_independent_ruler
|Iterate through all titles in sub-realm
| Independent rulers list with a COUNT tier or above who hold land
|ordered_sub_realm_title = {
| <pre>random_independent_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
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> }
|character
|landed title
|-
|-
|ordered_targeting_faction
| random_inspiration
|Iterate through all factions targeting the scope character
| Iterate through all inspirations in the world
|ordered_targeting_faction = {
| <pre>random_inspiration = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| inspiration
position = int
min = int
max = 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
| random_inspired_character
|Iterate through all schemes targeting the character
| Iterate through all characters with an inspirations in the world
|ordered_targeting_scheme = {
| <pre>random_inspired_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| character
position = int
|-
min = int
| random_kingdom
max = script_value
| Iterate through all kingdoms 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>random_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
<effects> }
| none
|character
| landed title
|scheme
|-
|-
|ordered_targeting_secret
| random_living_character
|Iterate through all secrets that target the specified scope
| Iterate through all living characters
|ordered_targeting_secret = {
| <pre>random_living_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
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> }
|character
|secret
|-
|-
|ordered_traveling_family_member
| random_log_scopes
|Iterate though all characters that should travel with the scoped one (when moving between courts for instance); includes the scoped character
| 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
|ordered_traveling_family_member = {
| <pre></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> }
|character
|character
|-
|-
|ordered_truce_holder
| random_player
|Iterate through all characters that have a truce on this character
| Iterate through all player characters
|ordered_truce_holder = {
| <pre>random_player = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
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> }
|character
|character
|-
|-
|ordered_truce_target
| random_pool_character
|Iterate through all characters this character has a truce on
| Iterate through all characters in the pool of the given province
|ordered_truce_target = {
| <pre>random_pool_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
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> }
|character
|character
|-
|-
|ordered_unspent_known_secret
| random_province
|Iterate through all unspent secrets known by the character
| Iterate through all provinces (skips non-land and impassable provinces)
|ordered_unspent_known_secret = {
| <pre>random_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| province
position = int
min = int
max = 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
| random_religion_global
|Iterate through all DIRECT vassals
| Iterate through all religions in the game
|ordered_vassal = {
| <pre>random_religion_global = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
order_by = script_value
| religion
position = int
min = int
max = 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
| random_ruler
|Iterate through ALL vassals, not just direct vassals
| Rulers list with a COUNT tier o above
|ordered_vassal_or_below = {
| <pre>random_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| none
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> }
|character
|character
|-
|-
|ordered_war_ally
| remove_from_list
|Iterate through all direct war allies
| Removes the current scope from a named list remove_from_list = <string>
|ordered_war_ally = {
| <pre></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> }
|character
|character
|-
|-
|ordered_war_enemy
| remove_global_variable
|Iterate through all direct war enemies
| Removes a variable
|ordered_war_enemy = {
| <pre>remove_variable = variable_name</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> }
|character
|character
|-
|-
|pay_long_term_gold
| remove_list_global_variable
|the scope character pays gold to the target character, pay_gold = { target = X gold = Y } (AI budget category long term)
| Removes the target from a variable list
|Unspecified
| <pre>remove_list_variable = { name = X target = Y }
|character
Where X is the name of the variable
|
Where Y is an event target</pre>
| none
|-
|-
|pay_long_term_income
| remove_list_local_variable
|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)
| Removes the target from a variable list
|Unspecified
| <pre>remove_list_variable = { name = X target = Y }
|character
Where X is the name of the variable
|
Where Y is an event target</pre>
| none
|-
|-
|pay_short_term_gold
| remove_list_variable
|the scope character pays gold to the target character, pay_gold = { target = X gold = Y } (AI budget category short term)
| Removes the target from a variable list
|Unspecified
| <pre>remove_list_variable = { name = X target = Y }
|character
Where X is the name of the variable
|
Where Y is an event target</pre>
| none
|-
|-
|pay_short_term_income
| remove_local_variable
|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)
| Removes a variable
|Unspecified
| <pre>remove_variable = variable_name</pre>
|character
| none
|
|-
|-
|play_music_cue
| remove_title_law
|Plays the specified music cue.
| 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.
|Unspecified
| <pre>remove_title_law = princely_elective_succession_law</pre>
|character
| none
|
|-
|-
|random_alert_creatable_title
| remove_title_law_effects
|Iterate through all titles that can be created by the character. (only for alerts)
| 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.
|random_alert_creatable_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>remove_title_law = princely_elective_succession_law</pre>
|character
| none
|landed title
|-
|-
|random_alert_usurpable_title
| remove_variable
|Iterate through all titles that can be usurped by the character. (only for alerts)
| Removes a variable
|random_alert_usurpable_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>remove_variable = variable_name</pre>
|character
| none
|landed title
|-
|-
|random_ally
| resolve_title_and_vassal_change
|Iterate through all allies
| resolve_title_and_vassal_change = scope:change
|random_ally = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>Execute and destory the target title and vassal change, the change cannot be used after calling this effect</pre>
|character
| none
|character
| title and vassal change
|-
|-
|random_ancestor
| round_global_variable
|Iterate through all the ancestors of the scope character up to 5 generations
| Rounds a variable to the nearest specified value
|random_ancestor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>clamp_variable = { name = X nearest = Y }
|character
Where X is the name of the variable
|character
Where Y is a script value</pre>
| none
|-
|-
|random_army
| round_local_variable
|Iterate through all armies
| Rounds a variable to the nearest specified value
|random_army = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>clamp_variable = { name = X nearest = Y }
|character
Where X is the name of the variable
|army
Where Y is a script value</pre>
| none
|-
|-
|random_character_to_title_neighboring_and_across_water_barony
| round_variable
|Scopes from a character to a neighboring barony (incl. across water, looking trough the de Jure lieges)
| Rounds a variable to the nearest specified value
|random_character_to_title_neighboring_and_across_water_barony = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>clamp_variable = { name = X nearest = Y }
|character
Where X is the name of the variable
|landed title
Where Y is a script value</pre>
| none
|-
|-
|random_character_to_title_neighboring_and_across_water_county
| run_interaction
|Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
| Execute/send the given interaction
|random_character_to_title_neighboring_and_across_water_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>
|character
interaction = interaction_key - the interaction object key to run
|landed title
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
|-
|-
|random_character_to_title_neighboring_and_across_water_duchy
| save_opinion_value_as
|Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
| Saves the scoped character's opinion of the target character as an arbitrarily-named target to be referenced later in the (unbroken) event chain
|random_character_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>save_opinion_value_as = { name = <string> target = x }</pre>
|character
| none
|landed title
|-
|-
|random_character_to_title_neighboring_and_across_water_empire
| save_scope_as
|Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
| Saves the current scope as an arbitrarily-named target to be referenced later in the (unbroken) event chain
|random_character_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>save_event_target_as = <string></pre>
|character
| none
|landed title
|-
|-
|random_character_to_title_neighboring_and_across_water_kingdom
| save_scope_value_as
|Scopes from a character to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
| Saves a numerical or bool value as an arbitrarily-named target to be referenced later in the (unbroken) event chain
|random_character_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>save_scope_value_as = { name = <string> value = x }</pre>
|character
| none
|landed title
|-
|-
|random_character_to_title_neighboring_barony
| save_temporary_opinion_value_as
|Scopes from a character to a neighboring barony (looking trough the de Jure lieges)
| 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
|random_character_to_title_neighboring_barony = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>save_temporary_opinion_value_as = { name = <string> target = x</pre>
|character
| none
|landed title
|-
|-
|random_character_to_title_neighboring_county
| save_temporary_scope_as
|Scopes from a character to a neighboring county (looking trough the de Jure lieges)
| Saves the current scope as an arbitrarily-named temporary target to be referenced later in the same effect
|random_character_to_title_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>save_temporary_event_target_as = <string></pre>
|character
| none
|landed title
|-
|-
|random_character_to_title_neighboring_duchy
| save_temporary_scope_value_as
|Scopes from a character to a neighboring duchy (looking trough the de Jure lieges)
| Saves a numerical or bool value as an arbitrarily-named temporary target to be referenced later in the same effect
|random_character_to_title_neighboring_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>save_temporary_scope_value_as = { name = <string> value = x }</pre>
|character
| none
|landed title
|-
|-
|random_character_to_title_neighboring_empire
| set_focus_progress
|Scopes from a character to a neighboring empire (looking trough the de Jure lieges)
| Sets focus progress
|random_character_to_title_neighboring_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| none
|landed title
|-
|-
|random_character_to_title_neighboring_kingdom
| set_generated_asexuality_chance
|Scopes from a character to a neighboring kingdom (looking trough the de Jure lieges)
| Sets the chance for a generated character to be asexual
|random_character_to_title_neighboring_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>set_generated_asexuality_chance = 20</pre>
|character
| none
|landed title
|-
|-
|random_character_war
| set_generated_bisexuality_chance
|Wars of the scoped character
| Sets the chance for a generated character to be bisexual
|random_character_war = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>set_generated_bisexuality_chance = 20</pre>
|character
| none
|war
|-
|-
|random_child
| set_generated_homosexuality_chance
|Iterate through all children
| Sets the chance for a generated character to be homosexual
|random_child = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>set_generated_homosexuality_chance = 20</pre>
|character
| none
|character
|-
|-
|random_claim
| set_global_variable
|Iterate through the titles of all claims held by a character; parameters: explicit = yes/no/all pressed = yes/no/all
| Sets a variable
|random_claim = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>set_variable = { name = X value = Y days = Z }
|character
Where X is the name of the variable used to then access it
|landed title
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
|-
|-
|random_close_family_member
| set_local_variable
|Iterate through all the close family [father, mother, siblings, children, grandparents]
| Sets a variable
|random_close_family_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <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; 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
|-
|-
|random_close_or_extended_family_member
| set_pregnancy_gender
|Iterate through all the close and extended relatives [father, mother, siblings, children, grandparents, uncles/aunts, nephew/niece, cousins]
| Set the gender of the unborn child
|random_close_or_extended_family_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>set_pregnancy_gender = female/male/random</pre>
|character
| none
|character
|-
|-
|random_concubine
| set_variable
|Iterate through all concubines
| Sets a variable
|random_concubine = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <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.
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
|-
|-
|random_consort
| setup_claim_cb
|Iterate through all consorts (concubines and spouses)
| = { attacker = scope:attacker
|random_consort = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre> defender = scope:defender
|character
claimant = scope:claimant
|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
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
|-
|-
|random_councillor
| setup_de_jure_cb
|Iterate through all councillors
| = { attacker = scope:attacker
|random_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>defender = scope:defender
|character
change = scope:change
|character
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
|-
|-
|random_courtier
| setup_invasion_cb
|Iterate through all courtiers
| = { attacker = scope:attacker
|random_courtier = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre> defender = scope:defender
|character
  change = scope:change victory = yes/no
|character
take_occupied = yes/no } , this effect will add a scope:cb_prestige_factor with a value based on what's being taken</pre>
| none
|-
|-
|random_courtier_away
| start_struggle
|Iterate through all courtiers that are away
| Start a struggle
|random_courtier_away = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>start_struggle = { struggle_type = X start_phase = Y } where X is a struggle type, Y is a phase</pre>
|character
| none
|character
|-
|-
|random_courtier_or_guest
| start_tutorial_lesson
|Iterate through all courtiers and guests (pool and foreign court guests)
| 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)
|random_courtier_or_guest = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| none
|character
|-
|-
|random_de_jure_claim
| trigger_event
|Iterate through all de jure claims for a character
| triggers an event or on_action
|random_de_jure_claim = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>trigger_event = { id = X days/months/years = Y delayed = yes/no } (for events)
|character
or
|landed title
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</pre>
| none
|-
|-
|random_diplomacy_councillor
| try_create_important_action
|Iterate through all diplomacy-based councillors
| Tries to create an important action notification. Will keep the current one if already exists.
|random_diplomacy_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>
|character
important_action_type = important_action_type_key - the important action object key to create. Must be defined.
|character
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
|-
|-
|random_directly_owned_province
| try_create_suggestion
|Iterate through all directly owned provinces
| Tries to create an suggestuib notification. Will keep the current one if already exists.
|random_directly_owned_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>
|character
suggestion_type = suggestion_type_key - the suggestion action object key to create. Must be defined.
|province
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
|-
|-
|random_election_title
| add_amenity_level
|Iterate through all titles the scoped character can vote on
| add_amenity_level = { type = food value = 2 }
|random_election_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>Increases the amenity type by the given value for the scoped character</pre>
|character
| character
|landed title
|-
|-
|random_extended_family_member
| add_character_flag
|Iterate through all the extended family [uncles/aunts, nephew/niece, cousins]
| adds a character flag
|random_extended_family_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>usage:
|character
add_character_flag = X
|character
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
|-
|-
|random_foreign_court_guest
| add_character_modifier
|Iterate through all guests visiting from another court (in contrast to pool_guest they have a liege)
| Add a modifier to a character
|random_foreign_court_guest = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>add_character_modifier = name
|character
add_character_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>
| character
|-
|-
|random_former_concubine
| add_courtier
|Iterate through all former concubines. Not persisted past death
| Add the target character to the scope character's court
|random_former_concubine = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
| character
|-
|-
|random_former_concubinist
| add_diplomacy_lifestyle_perk_points
|Iterate through all former concubinists. Not persisted past death
| Adds lifestyle per points to the given character
|random_former_concubinist = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_former_spouse
| add_diplomacy_lifestyle_xp
|Iterate through all former spouses
| Adds lifestyle XP to the given character
|random_former_spouse = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_general_councillor
| add_dread
|Iterate through all councillors that are not related to a skill
| adds (or removes) dread to a character
|random_general_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_heir
| add_gold
|Heirs of the scoped character
| adds gold to a character
|random_heir = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_heir_title
| add_hook
|Iterate through all landed titles character is heir to
| Adds a hook on a character
|random_heir_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>add_hook = { type = X, target = Y, secret = Z, days/months/years = W  }
|character
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.
|landed title
Does send a toast to the player if it's involved.</pre>
| character
|-
|-
|random_heir_to_title
| add_hook_no_toast
|Iterate through all titles the scoped character is heir to
| Adds a hook on a character
|random_heir_to_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>add_hook = { type = X, target = Y, secret = Z, days/months/years = W  }
|character
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.
|landed title
Does NOT send a toast to the player.</pre>
| character
|-
|-
|random_held_title
| add_intrigue_lifestyle_perk_points
|Iterate through all held landed titles
| Adds lifestyle per points to the given character
|random_held_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|landed title
|-
|-
|random_hired_mercenary
| add_intrigue_lifestyle_xp
|Iterate through all hired mercenary companies
| Adds lifestyle XP to the given character
|random_hired_mercenary = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|mercenary company
|-
|-
|random_hooked_character
| add_joined_faction_discontent
|Iterate through all characters this character has a hook on
| add_joined_faction_discontent = X adds (or subtracts) discontent to the factions the scope character is in
|random_hooked_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_hostile_raider
| add_knows_of_killer
|Iterate through anyone the character is hostile to due to their top-liege's realm having been raided
| Adds the right hand side character as knowing of the killer of the scoped object
|random_hostile_raider = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>dead_person = { add_knows_of_killer = root }</pre>
|character
| character
|character
| character
|-
|-
|random_intrigue_councillor
| add_learning_lifestyle_perk_points
|Iterate through all intrigue-based councillors
| Adds lifestyle per points to the given character
|random_intrigue_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_knight
| add_learning_lifestyle_xp
|Iterate through all knights
| Adds lifestyle XP to the given character
|random_knight = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_known_secret
| add_martial_lifestyle_perk_points
|Iterate through all secrets known by the character
| Adds lifestyle per points to the given character
|random_known_secret = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|secret
|-
|-
|random_learning_councillor
| add_martial_lifestyle_xp
|Iterate through all learning-based councillors
| Adds lifestyle XP to the given character
|random_learning_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_liege_or_above
| add_opinion
|Iterate through all lieges above a character (skipping the character themselves)
| Adds a temporary opinion modifier, add_opinion = { modifier = X days/months/years = Y target = Z }
|random_liege_or_above = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <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>
|character
| character
|character
|-
|-
|random_martial_councillor
| add_perk
|Iterate through all martial-based councillors
| Adds the perk for this character
|random_martial_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_neighboring_and_across_water_realm_same_rank_owner
| add_personal_artifact_claim
|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)
| Adds a personal claim on the target artifact to the scoped character
|random_neighboring_and_across_water_realm_same_rank_owner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
| artifact
|-
|-
|random_neighboring_and_across_water_top_liege_realm
| add_piety
|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
| gives (or takes) piety to a character
|random_neighboring_and_across_water_top_liege_realm = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|landed title
|-
|-
|random_neighboring_and_across_water_top_liege_realm_owner
| add_piety_experience
|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
| gives (or takes) piety experience to a character
|random_neighboring_and_across_water_top_liege_realm_owner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_neighboring_realm_same_rank_owner
| add_piety_level
|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)
| increases (or decreases) the piety level of a character
|random_neighboring_realm_same_rank_owner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_neighboring_top_liege_realm
| add_piety_no_experience
|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
| gives (or takes) piety without experience to a character
|random_neighboring_top_liege_realm = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|landed title
|-
|-
|random_neighboring_top_liege_realm_owner
| add_pressed_claim
|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
| gives a pressed claim to a character
|random_neighboring_top_liege_realm_owner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
| landed title
|-
|-
|random_owned_story
| add_prestige
|Iterate through all owned stories for a character
| gives (or takes) prestige to a character
|random_owned_story = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|story cycle
|-
|-
|random_parent
| add_prestige_experience
|Iterate through all (both) parents
| gives (or takes) prestige experience to a character
|random_parent = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_patroned_holy_order
| add_prestige_level
|Iterate through all holy orders that the scoped character is a patron of
| increases (or decreases) the prestige level of a character
|random_patroned_holy_order = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|holy order
|-
|-
|random_pinned_character
| add_prestige_no_experience
|Iterate through characters this player has pinned
| gives (or takes) prestige without experience to a character
|random_pinned_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_pinning_character
| add_realm_law
|Iterate through characters whose player has this character pinned
| Adds the given law to the scoped character
|random_pinning_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_player_heir
| add_realm_law_skip_effects
|Iterate through player heirs, capped at the first 10
| Adds the given law to the scoped character. Skips the cost and the pass effect, and the revoke effects of the current law
|random_player_heir = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_pool_guest
| add_relation_flag
|Iterate through all guests visiting the court from the pool (in contrast to foreign_court_guest they don't have a liege)
| Adds a flag to an existing relation
|random_pool_guest = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>add_relation_flag = {
|character
  relation = scripted_relation
|character
  flag = flag_name (declared in the relation's script)
  target = other_character
}</pre>
| character
|-
|-
|random_potential_marriage_option
| add_scheme_cooldown
|Iterate through all potential selectable marriage or betrohed options
| Sets a scheme cooldown for the scope character towards = { target=target_character type=scheme_type days/weeks/months/years = duration }
|random_potential_marriage_option = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_pretender_title
| add_secret
|Iterate through all landed titles character is pretender to
| Adds a secret
|random_pretender_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>add_secret = { type = X target = Y }
|character
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.
|landed title
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
|-
|-
|random_primary_war_enemy
| add_stewardship_lifestyle_perk_points
|Iterate through all primary war enemies
| Adds lifestyle per points to the given character
|random_primary_war_enemy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_prisoner
| add_stewardship_lifestyle_xp
|Iterate through all prisoners
| Adds lifestyle XP to the given character
|random_prisoner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_prowess_councillor
| add_stress
|Iterate through all prowess-based councillors
| increases (or decreases) stress of a character
|random_prowess_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_raid_target
| add_targeting_factions_discontent
|Iterate through anyone the character is hostile to due to having raided them. Only returns top lieges
| add_targeting_factions_discontent = X adds (or subtracts) discontent to all the factions that are targeting the scope character
|random_raid_target = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_realm_county
| add_to_scheme
|Iterate through all counties in the realm. Based on top liege
| Adds a character as an agent to the scheme
|random_realm_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|landed title
| scheme
|-
|-
|random_realm_de_jure_duchy
| add_trait
|Iterate through all de jure duchies that have at least one county in the realm. Based on top liege
| 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)
|random_realm_de_jure_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|landed title
|
|-
| 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)
| <pre></pre>
| character
|
|-
| add_truce_both_ways
| Sets the both-way 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
'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
|
|-
| add_truce_one_way
| 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
|-
|-
|random_realm_de_jure_empire
| add_tyranny
|Iterate through all de jure empire that have at least one county in the realm. Based on top liege
| adds (or removes) tyranny to (or from) a character
|random_realm_de_jure_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|landed title
|-
|-
|random_realm_de_jure_kingdom
| add_unpressed_claim
|Iterate through all de jure kingdom that have at least one county in the realm. Based on top liege
| gives an unpressed claim to a character
|random_realm_de_jure_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|landed title
| landed title
|-
|-
|random_realm_province
| add_visiting_courtier
|Iterate through all realm provinces of a character
| Add the target character as the scope character's guest
|random_realm_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|province
| character
|-
|-
|random_relation
| allow_alliance
|Iterate through scripted relations of a given type or multiple types, if someone is multiple relations they will only be in the list once
| Allows (previously broken) alliance with the target character
|random_relation = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
| character
|-
|-
|random_scheme
| allow_in_scheme
|Iterate through all schemes owned by the character
| Allow the character to join the scheme as an agent
|random_scheme = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|scheme
| scheme
|-
|-
|random_secret
| apply_ai_vassal_obligation_liege_most_desired
|Iterate through all secrets of the character
| Apply the new level for the most desired AI obligation level the liege in the contract wants
|random_secret = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|secret
|-
|-
|random_sibling
| apply_ai_vassal_obligation_vassal_most_desired
|Iterate through all siblings
| Apply the new level for the most desired AI obligation level the vassal in the contract wants
|random_sibling = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_spouse
| appoint_court_position
|Iterate through all spouses
| Appoints the target character in target court position within scoped character's court
|random_spouse = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>
|character
recipient = character scope - target character to receive the title
|character
court_position = court position type - court position type to assign the receiver</pre>
| character
|-
|-
|random_spouse_candidate
| assign_council_task
|Iterate through all the spouse candidates of a character. WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
| Assigns the target character to the council task
|random_spouse_candidate = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>assign_council_task = {
|character
   council_task = council_task_scope
|character
   target = character_taking_the_position   fire_on_actions = [yes]
}</pre>
| character
|-
|-
|random_stewardship_councillor
| assign_councillor_type
|Iterate through all stewardship-based councillors
| 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] }
|random_stewardship_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_sub_realm_barony
| banish
|Iterate through all baronies in sub-realm
| The character gets banished.
|random_sub_realm_barony = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|landed title
|-
|-
|random_sub_realm_county
| becomes_independent
|Iterate through all counties in sub-realm
| becomes and independent ruler. becomes_independent = { change = 'previously created title_and_vassal_change'
|random_sub_realm_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|landed title
|-
|-
|random_sub_realm_duchy
| break_alliance
|Iterate through all duchies in sub-realm
| Breaks the alliance with the target character
|random_sub_realm_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|landed title
| character
|-
|-
|random_sub_realm_empire
| cancel_truce_both_ways
|Iterate through all empires in sub-realm
| Ends the truce against the specified character, and theirs against the scoped character. cancel_truce_both_ways = scope:character
|random_sub_realm_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|landed title
| character
|-
|-
|random_sub_realm_kingdom
| cancel_truce_one_way
|Iterate through all kingdoms in sub-realm
| Ends the truce against the specified character. cancel_truce_one_way = scope:character
|random_sub_realm_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|landed title
| character
|-
|-
|random_sub_realm_title
| change_age
|Iterate through all titles in sub-realm
| 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
|random_sub_realm_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>   Usage: change_age = script value</pre>
|character
| character
|landed title
|-
|-
|random_targeting_faction
| change_current_court_grandeur
|Iterate through all factions targeting the scope character
| Changes the current court grandeur of a character with a royal court, clamped between NRoyalCourt::COURT_GRANDEUR_MIN and NRoyalCourt::COURT_GRANDEUR_MAX.
|random_targeting_faction = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|faction
|-
|-
|random_targeting_scheme
| change_current_weight
|Iterate through all schemes targeting the character
| Change the current weight of the scoped character
|random_targeting_scheme = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>change_current_weight = 20</pre>
|character
| character
|scheme
|-
|-
|random_targeting_secret
| change_first_name
|Iterate through all secrets that target the specified scope
| Change the first name of a character
|random_targeting_secret = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>change_first_name = <localization_key>
|character
change_first_name = scope:name/var:name # containing a flag with a localization key
|secret
change_first_name = { template_character = scope:character } # copy name from the template character</pre>
| character
|-
|-
|random_traveling_family_member
| change_government
|Iterate though all characters that should travel with the scoped one (when moving between courts for instance); includes the scoped character
| changes the government of a character
|random_traveling_family_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_truce_holder
| change_liege
|Iterate through all characters that have a truce on this character
| = { liege = 'Character that should become the new liege' change = 'previously created title_and_vassal_change', adds a liege change
|random_truce_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_truce_target
| change_prison_type
|Iterate through all characters this character has a truce on
| Changes the charater's prison type. Scoped character is the prisoner. Accepts any static modifier (see also improson effect).
|random_truce_target = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>change_prison_type = house_arrest</pre>
|character
| character
|character
|-
|-
|random_unspent_known_secret
| change_target_weight
|Iterate through all unspent secrets known by the character
| Change the target weight of the scoped character
|random_unspent_known_secret = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>change_target_weight = 20</pre>
|character
| character
|secret
|-
|-
|random_vassal
| change_trait_rank
|Iterate through all DIRECT vassals
| Changes the trait rank = { trait = trait_group rank = change max = maximum new rank }
|random_vassal = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
|-
|-
|random_vassal_or_below
| clear_forced_vote
|Iterate through ALL vassals, not just direct vassals
| Clears forced voting
|random_vassal_or_below = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>clear_forced_vote = yes</pre>
|character
| character
|character
|-
|-
|random_war_ally
| consume_banish_reasons
|Iterate through all direct war allies
| '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.
|random_war_ally = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
| character
|-
|-
|random_war_enemy
| consume_divorce_reasons
|Iterate through all direct war enemies
| '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.
|random_war_enemy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|character
| character
|character
| character
|-
|-
|recalculate_scripted_relation
| consume_execute_reasons
|Recalculates the effect of a scripted relation
| '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.
|recalculate_scripted_relation= friend
| <pre></pre>
|character
| character
|
| character
|-
|-
|recruit_courtier
| consume_imprisonment_reasons
|Recruits the target to become a courtier.
| '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.
|scope:liege = { recruit_courtier = scope:new_courtier }
| <pre></pre>
|character
| character
|character
| character
|-
|-
|refund_all_perks
| consume_revoke_title_reason
|Refunds all perks of the character. Example: refund_all_perks = yes
| 'Consume' 1 revoke title reason that the scoped character has on the target character.
|Unspecified
| <pre></pre>
|character
| character
|
| character
|-
|-
|refund_perks
| copy_inheritable_appearance_from
|Refunds all perks of the RHS lifestyle. Example: refund_perks = intrigue_lifestyle
| copies the inheritable appearance attributes (inheritable genes in the character's DNA string) from the target character to the scoped character
|Unspecified
| <pre></pre>
|character
| character
|
| character
|-
|-
|release_from_prison
| copy_localized_text
|releases the character from the prison, imprison = X, X is a boolean value
| Copies a piece of localized text from the target character for the given key.
|Unspecified
| <pre>copy_localized_text = { key = key target = character }</pre>
|character
| character
|
|-
|-
|remove_all_character_modifier_instances
| create_alliance
|Remove all instances of a modifier from a character
| 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.
|remove_all_character_modifier_instances = name
| <pre>create_alliance = {
|character
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
|-
|-
|remove_character_flag
| create_artifact
|removes a character flag
| Creates a new artifact and adds it to the inventory of the given character
|Unspecified
| <pre>
|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 )</pre>
| character
|-
|-
|remove_character_modifier
| create_cadet_branch
|Remove a modifier from a character
| The scope character creates a cadet branch of the house he is in [yes|no]
|remove_character_modifier = name
| <pre></pre>
|character
| character
|
|-
|-
|remove_claim
| create_divergent_culture
|removes an explicit (not from a living parent/grand parent) claim
| 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.
|Unspecified
| <pre>create_divergent_culture = yes</pre>
|character
| character
|landed title
|-
|-
|remove_concubine
| create_divergent_culture_with_side_effects
|Removes the target character as a concubine of the scope 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.
|Unspecified
| <pre>create_divergent_culture_with_side_effects = yes</pre>
|character
| character
|character
|-
|-
|remove_courtier_or_guest
| create_divergent_culture_with_side_effects_excluding_cost
|Removes the target character (guest or courtier) from the scope character's court
| 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.
|scope:host = { remove_courtier_or_guest = scope:guest } # move to pool, staying in same province
| <pre>create_divergent_culture_with_side_effects_excluding_cost = yes</pre>
scope:host = {
| character
remove_courtier_or_guest = {
character = scope:guest
new_location = scope:some_province # optionally specify a new location
}
}
|character
|character
|-
|-
|remove_decision_cooldown
| create_faction
|Remove the cooldown on taking a decision for the scoped character
| the scoped character creates a faction of the specified type against the specified target, create_faction = { type = X target = Y }
|remove_decision_cooldown = decision_name
| <pre></pre>
|character
| character
|
|-
|-
|remove_hook
| create_hybrid_culture
|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
| 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.
|Unspecified
| <pre>create_hybrid_culture = culture:anglo-saxon</pre>
|character
| character
|
| culture
|-
|-
|remove_interaction_cooldown
| create_hybrid_culture_with_side_effects
|Remove the cooldown on using an interaction for the scoped character
| 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.
|remove_interaction_cooldown = interaction_name
| <pre>create_hybrid_culture_with_side_effects = culture:anglo-saxon</pre>
|character
| character
|
| culture
|-
|-
|remove_interaction_cooldown_against
| create_inspiration
|Remove the cooldown on using an interaction against the target character for the scoped character
| create_inspiration = inspiration_type
|remove_interaction_cooldown_against = { interaction = interaction_name target = character }
| <pre>Creates an inspiration of a given type owned by scoped character, new inspiration is saved as scope:new_inspiration
|character
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
|-
|-
|remove_long_term_gold
| create_story
|removes gold from a character (AI's long term budget)
| creates and initializes a story cycle with the current character as owner
|Unspecified
| <pre>create_story = story_type
|character
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
|-
|-
|remove_nickname
| death
|Removes any nickname from the current character [yes|no]
| 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.
|Unspecified
| <pre></pre>
|character
| character
|
|-
|-
|remove_opinion
| depose
|Removes a temporary opinion modifier, remove_opinion = { target = X modifier = Y single = Z (no by default) } X is a character, Y is the opinion modifier, Z tells whether to remove all instances of the modifier or just one
| The character gets deposed.
|Unspecified
| <pre></pre>
|character
| character
|
|-
|-
|remove_perk
| destroy_title
|Remove the perk for this character
| Destroys a title
|Unspecified
| <pre>destroy_title = title:<title></pre>
|character
| character
|
| landed title
|-
|-
|remove_realm_law
| end_pregnancy
|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
| end a pregnancy
|Unspecified
| <pre></pre>
|character
| character
|
|-
|-
|remove_relation_best_friend
| every_alert_creatable_title
|Removes scripted relationship
| Iterate through all titles that can be created by the character. (only for alerts)
|Unspecified
| <pre>every_alert_creatable_title = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|remove_relation_bully
| every_alert_usurpable_title
|Removes scripted relationship
| Iterate through all titles that can be usurped by the character. (only for alerts)
|Unspecified
| <pre>every_alert_usurpable_title = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|remove_relation_court_physician
| every_ally
|Removes scripted relationship
| Iterate through all allies
|Unspecified
| <pre>every_ally = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|remove_relation_crush
| every_ancestor
|Removes scripted relationship
| Iterate through all the ancestors of the scope character up to 5 generations
|Unspecified
| <pre>every_ancestor = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|remove_relation_flag
| every_army
|Removed a flag from an existing relation flag = flag_name (declared in scripted_relation) target = other_character relation = scripted_relation
| Iterate through all armies
|Unspecified
| <pre>every_army = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| army
|-
|-
|remove_relation_friend
| every_character_artifact
|Removes scripted relationship
| Iterate through all artifacts in a given characters inventory
|Unspecified
| <pre>every_character_artifact = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| artifact
|-
|-
|remove_relation_guardian
| every_character_struggle
|Removes scripted relationship
| Iterate through all struggles that character is involved in.
|Unspecified
| <pre>every_character_struggle = { limit = { <triggers> } <effects> }
|character
Optional: Narrow down the involvement status *_character_struggle = { involvement = involved | interloper }</pre>
|character
| character
| struggle
|-
|-
|remove_relation_intrigue_mentor
| every_character_to_title_neighboring_and_across_water_county
|Removes scripted relationship
| Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>every_character_to_title_neighboring_and_across_water_county = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|remove_relation_intrigue_student
| every_character_to_title_neighboring_and_across_water_duchy
|Removes scripted relationship
| Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>every_character_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|remove_relation_lover
| every_character_to_title_neighboring_and_across_water_empire
|Removes scripted relationship
| Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>every_character_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|remove_relation_mentor
| every_character_to_title_neighboring_and_across_water_kingdom
|Removes scripted relationship
| Scopes from a character to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>every_character_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|remove_relation_nemesis
| every_character_to_title_neighboring_county
|Removes scripted relationship
| Scopes from a character to a neighboring county (looking trough the de Jure lieges)
|Unspecified
| <pre>every_character_to_title_neighboring_county = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|remove_relation_oaf
| every_character_to_title_neighboring_duchy
|Removes scripted relationship
| Scopes from a character to a neighboring duchy (looking trough the de Jure lieges)
|Unspecified
| <pre>every_character_to_title_neighboring_duchy = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|remove_relation_potential_friend
| every_character_to_title_neighboring_empire
|Removes scripted relationship
| Scopes from a character to a neighboring empire (looking trough the de Jure lieges)
|Unspecified
| <pre>every_character_to_title_neighboring_empire = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|remove_relation_potential_lover
| every_character_to_title_neighboring_kingdom
|Removes scripted relationship
| Scopes from a character to a neighboring kingdom (looking trough the de Jure lieges)
|Unspecified
| <pre>every_character_to_title_neighboring_kingdom = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|remove_relation_potential_rival
| every_character_war
|Removes scripted relationship
| Wars of the scoped character
|Unspecified
| <pre>every_character_war = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| war
|-
|-
|remove_relation_rival
| every_child
|Removes scripted relationship
| Iterate through all children
|Unspecified
| <pre>every_child = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|remove_relation_soldier_friend
| every_claim
|Removes scripted relationship
| Iterate through the titles of all claims held by a character; parameters: explicit = yes/no/all pressed = yes/no/all
|Unspecified
| <pre>every_claim = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|remove_relation_soulmate
| every_claimed_artifact
|Removes scripted relationship
| Iterate through all claimed artifacts of the scoped character
|Unspecified
| <pre>every_claimed_artifact = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| artifact
|-
|-
|remove_relation_student
| every_close_family_member
|Removes scripted relationship
| Iterate through all the close family [father, mother, siblings, children, grandparents]
|Unspecified
| <pre>every_close_family_member = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|remove_relation_victim
| every_close_or_extended_family_member
|Removes scripted relationship
| Iterate through all the close and extended relatives [father, mother, siblings, children, grandparents, uncles/aunts, nephew/niece, cousins]
|Unspecified
| <pre>every_close_or_extended_family_member = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|remove_relation_ward
| every_concubine
|Removes scripted relationship
| Iterate through all concubines
|Unspecified
| <pre>every_concubine = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|remove_scheme_cooldown_against
| every_consort
|Remove the cooldown on using a scheme against the target character for the scoped character
| Iterate through all consorts (concubines and spouses)
|remove_scheme_cooldown_against = { scheme = scheme_name target = character }
| <pre>every_consort = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|remove_short_term_gold
| every_councillor
|removes gold from a character (AI's short term budget)
| Iterate through all councillors
|Unspecified
| <pre>every_councillor = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|remove_trait
| every_court_position_employer
|Removes a trait from a character. Tooltip will not be shown if the character doesn't have the trait.
| Iterates through all characters that employ the scoped character in any court position.
|Unspecified
| <pre>every_court_position_employer = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|remove_trait_force_tooltip
| every_court_position_holder
|Removes a trait from a character. Tooltip will be shown even if the character doesn't have the trait.
| Iterates through all characters employed by the scoped character in the target court position.
|Unspecified
| <pre>every_court_position_holder = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|reset_beneficiary
| every_courtier
|The target character stops having a beneficiary
| Iterate through all courtiers
|reset_beneficiary = yes
| <pre>every_courtier = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|return_to_court
| every_courtier_away
|Returns the scope character to the employers court.
| Iterate through all courtiers that are away
|Unspecified
| <pre>every_courtier_away = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|reverse_add_opinion
| every_courtier_or_guest
|Adds a temporary reverse opinion modifier. 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.
| Iterate through all courtiers and guests (pool and foreign court guests)
|reverse_add_opinion = { modifier = X days/months/years = Y target = Z }
| <pre>every_courtier_or_guest = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|scriptedtests_recalculate_character_modifier
| every_de_jure_claim
|Recalculates the modifier of the scoped character
| Iterate through all de jure claims for a character
|Unspecified
| <pre>every_de_jure_claim = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| landed title
|-
|-
|scriptedtests_recalculate_succession
| every_diplomacy_councillor
|Recalculates the line of succession of the scoped character
| Iterate through all diplomacy-based councillors
|Unspecified
| <pre>every_diplomacy_councillor = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|send_interface_message
| every_directly_owned_province
|Sends a message to the player playing the character in the scope and then executes any effects inside.
| Iterate through all directly owned provinces
For the message text and tooltip, $EFFECT$ contains the text description of the effects in the past tense.
| <pre>every_directly_owned_province = { limit = { <triggers> } <effects> }</pre>
And $DESC$ contains the text from the desc field.
| character
|send_interface_message = {
| province
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 or title
right_icon = scope:the_title # optional, character 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
| every_election_title
|Sends a message to the player playing the character in the scope and then executes any effects inside.
| Iterate through all titles the scoped character can vote on
For the message text and tooltip, $EFFECT$ contains the text description of the effects in the past tense.
| <pre>every_election_title = { limit = { <triggers> } <effects> }</pre>
And $DESC$ contains the text from the desc field.
| character
send_interface_toast = {
| landed title
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 or title
right_icon = scope:the_title # optional, character 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
|-
|-
|set_absolute_country_control
| every_equipped_character_artifact
|Sets if this character has absolute country control, unlock_character_movement = yes/no/boolean event target
| Iterate through all equipped artifacts in a given characters inventory
|Unspecified
| <pre>every_equipped_character_artifact = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| artifact
|-
|-
|set_beneficiary
| every_extended_family_member
|The target character becomes the beneficiary of the scoped character. set_beneficiary = some character
| Iterate through all the extended family [uncles/aunts, nephew/niece, cousins]
|Unspecified
| <pre>every_extended_family_member = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_character_faith
| every_foreign_court_guest
|Changes what faith a character has executing the effects for it. For history setup use 'set_character_faith_history' instead.
| Iterate through all guests visiting from another court (in contrast to pool_guest they have a liege)
|Unspecified
| <pre>every_foreign_court_guest = { limit = { <triggers> } <effects> }</pre>
|character
| character
|faith
| character
|-
|-
|set_character_faith_history
| every_former_concubine
|Changes what faith a character has NOT executing the effects for it. USE ONLY IN HISOTRY SETUP!
| Iterate through all former concubines. Not persisted past death
|Unspecified
| <pre>every_former_concubine = { limit = { <triggers> } <effects> }</pre>
|character
| character
|faith
| character
|-
|-
|set_character_faith_with_conversion
| every_former_concubinist
|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
| Iterate through all former concubinists. Not persisted past death
|set_character_faith_with_conversion = faith:<religion>
| <pre>every_former_concubinist = { limit = { <triggers> } <effects> }</pre>
|character
| character
|faith
| character
|-
|-
|set_child_of_concubine_on_pregnancy
| every_former_spouse
|Sets the child to be (or not be) a child of a concubine during pregnancy
| Iterate through all former spouses
|Unspecified
| <pre>every_former_spouse = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|set_council_task
| every_general_councillor
|Sets the task of the scope councillor { task_type = council_position_type_key target = for_targeted_tasks  }
| Iterate through all councillors that are not related to a skill
|Unspecified
| <pre>every_general_councillor = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|set_culture
| every_heir
|Set the culture for this character
| Heirs of the scoped character
|Unspecified
| <pre>every_heir = { limit = { <triggers> } <effects> }</pre>
|character
| character
|culture
| character
|-
|-
|set_culture_same_as
| every_heir_title
|Sets the culture of the character to be the same as the culture of the target
| Iterate through all landed titles character is heir to
|Unspecified
| <pre>every_heir_title = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|set_death_reason
| every_heir_to_title
|sets the death reason and the killer of a dead character, set_death_reason = { killer = X death_reason = Y }, both parameters are optional
| Iterate through all titles the scoped character is heir to
|Unspecified
| <pre>every_heir_to_title = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| landed title
|-
|-
|set_default_education
| every_held_title
|Set the default education focus for this character
| Iterate through all held landed titles
|Unspecified
| <pre>every_held_title = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| landed title
|-
|-
|set_designated_heir
| every_hired_mercenary
|Sets the given character as designated heir
| Iterate through all hired mercenary companies
|Unspecified
| <pre>every_hired_mercenary = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| mercenary company
|-
|-
|set_employer
| every_hooked_character
|Add the scope character to the target character's court
| Iterate through all characters this character has a hook on
|Unspecified
| <pre>every_hooked_character = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_father
| every_hostile_raider
|sets the father of a character
| Iterate through anyone the character is hostile to due to their top-liege's realm having been raided
|Unspecified
| <pre>every_hostile_raider = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_focus
| every_intrigue_councillor
|Set the focus for this character
| Iterate through all intrigue-based councillors
|Unspecified
| <pre>every_intrigue_councillor = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|set_house
| every_knight
|Sets the dynasty house of the character
| Iterate through all knights
|Unspecified
| <pre>every_knight = { limit = { <triggers> } <effects> }</pre>
|character
| character
|dynasty house
| character
|-
|-
|set_immortal_age
| every_known_secret
|Changes what age the character became immortal at. Only works if already immortal
| Iterate through all secrets known by the character
|set_immortal_age = 20
| <pre>every_known_secret = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| secret
|-
|-
|set_killer_public
| every_learning_councillor
|Sets the scoped character's killer as being publicly known
| Iterate through all learning-based councillors
|set_killer_public = bool
| <pre>every_learning_councillor = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|set_known_bastard_on_pregnancy
| every_liege_or_above
|Sets the child to a known or unknown bastard during pregnancy
| Iterate through all lieges above a character (skipping the character themselves)
|Unspecified
| <pre>every_liege_or_above = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|set_num_pregnancy_children
| every_martial_councillor
|Set the number of children
| Iterate through all martial-based councillors
|Unspecified
| <pre>every_martial_councillor = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|set_override_designated_winner
| every_neighboring_and_across_water_realm_same_rank_owner
|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
| 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)
|Unspecified
| <pre>every_neighboring_and_across_water_realm_same_rank_owner = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|set_player_character
| every_neighboring_and_across_water_top_liege_realm
|The scope character's player will now play as the target character. Scope must be player-controlled. Target cannot be player-controlled. Example: make_unprunable = yes
| 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
|Unspecified
| <pre>every_neighboring_and_across_water_top_liege_realm = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|set_pregnancy_assumed_father
| every_neighboring_and_across_water_top_liege_realm_owner
|Set the assumed father of the pregnancy
| 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
|Unspecified
| <pre>every_neighboring_and_across_water_top_liege_realm_owner = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_primary_spouse
| every_neighboring_realm_same_rank_owner
|Set the primary spouse of a character
| 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)
|set_primary_spouse = scope
| <pre>every_neighboring_realm_same_rank_owner = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_primary_title_to
| every_neighboring_top_liege_realm
|Sets the primary title for a character
| 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
|set_primary_title_to = <title>
| <pre>every_neighboring_top_liege_realm = { limit = { <triggers> } <effects> }</pre>
|character
| character
|landed title
| landed title
|-
|-
|set_real_father
| every_neighboring_top_liege_realm_owner
|Changes the real father of the character scope
| 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
|Unspecified
| <pre>every_neighboring_top_liege_realm_owner = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_realm_capital
| every_opposite_sex_spouse_candidate
|Set a new realm capital
| Iterate through all the spouse candidates of the opposite sex of a character.
|character = { set_realm_capital = new_title }
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
|character
every_opposite_sex_spouse_candidate = { limit = { <triggers> } <effects> }</pre>
|landed title
| character
| character
|-
|-
|set_relation_best_friend
| every_owned_story
|Sets scripted relationship
| Iterate through all owned stories for a character
|Unspecified
| <pre>every_owned_story = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| story cycle
|-
|-
|set_relation_bully
| every_parent
|Sets scripted relationship
| Iterate through all (both) parents
|Unspecified
| <pre>every_parent = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_relation_court_physician
| every_patroned_holy_order
|Sets scripted relationship
| Iterate through all holy orders that the scoped character is a patron of
|Unspecified
| <pre>every_patroned_holy_order = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| holy order
|-
|-
|set_relation_crush
| every_personal_claimed_artifact
|Sets scripted relationship
| Iterate through all personally claimed artifacts of the scoped character
|Unspecified
| <pre>every_personal_claimed_artifact = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| artifact
|-
|-
|set_relation_friend
| every_pinned_character
|Sets scripted relationship
| Iterate through characters this player has pinned
|Unspecified
| <pre>every_pinned_character = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_relation_guardian
| every_pinning_character
|Sets scripted relationship
| Iterate through characters whose player has this character pinned
|Unspecified
| <pre>every_pinning_character = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_relation_intrigue_mentor
| every_played_character
|Sets scripted relationship
| Iterate through all characters the player playing this character has played. Matches the game over legacy, except for excluding the currently played character
|Unspecified
| <pre>every_played_character = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_relation_intrigue_student
| every_player_heir
|Sets scripted relationship
| Iterate through player heirs, capped at the first 10
|Unspecified
| <pre>every_player_heir = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_relation_lover
| every_pool_guest
|Sets scripted relationship
| Iterate through all guests visiting the court from the pool (in contrast to foreign_court_guest they don't have a liege)
|Unspecified
| <pre>every_pool_guest = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_relation_mentor
| every_potential_marriage_option
|Sets scripted relationship
| Iterate through all potential selectable marriage or betrohed options
|Unspecified
| <pre>every_potential_marriage_option = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_relation_nemesis
| every_pretender_title
|Sets scripted relationship
| Iterate through all landed titles character is pretender to
|Unspecified
| <pre>every_pretender_title = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|set_relation_oaf
| every_primary_war_enemy
|Sets scripted relationship
| Iterate through all primary war enemies
|Unspecified
| <pre>every_primary_war_enemy = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_relation_potential_friend
| every_prisoner
|Sets scripted relationship
| Iterate through all prisoners
|Unspecified
| <pre>every_prisoner = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_relation_potential_lover
| every_prowess_councillor
|Sets scripted relationship
| Iterate through all prowess-based councillors
|Unspecified
| <pre>every_prowess_councillor = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_relation_potential_rival
| every_raid_target
|Sets scripted relationship
| Iterate through anyone the character is hostile to due to having raided them. Only returns top lieges
|Unspecified
| <pre>every_raid_target = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_relation_rival
| every_realm_county
|Sets scripted relationship
| Iterate through all counties in the realm. Based on top liege
|Unspecified
| <pre>
|character
every_realm_county = { limit = { <triggers> } <effects> }</pre>
|character
| character
| landed title
|-
|-
|set_relation_soldier_friend
| every_realm_de_jure_duchy
|Sets scripted relationship
| Iterate through all de jure duchies that have at least one county in the realm. Based on top liege
|Unspecified
| <pre>
|character
every_realm_de_jure_duchy = { limit = { <triggers> } <effects> }</pre>
|character
| character
| landed title
|-
|-
|set_relation_soulmate
| every_realm_de_jure_empire
|Sets scripted relationship
| Iterate through all de jure empire that have at least one county in the realm. Based on top liege
|Unspecified
| <pre>
|character
every_realm_de_jure_empire = { limit = { <triggers> } <effects> }</pre>
|character
| character
| landed title
|-
|-
|set_relation_student
| every_realm_de_jure_kingdom
|Sets scripted relationship
| Iterate through all de jure kingdom that have at least one county in the realm. Based on top liege
|Unspecified
| <pre>
|character
every_realm_de_jure_kingdom = { limit = { <triggers> } <effects> }</pre>
|character
| character
| landed title
|-
|-
|set_relation_victim
| every_realm_province
|Sets scripted relationship
| Iterate through all realm provinces of a character
|Unspecified
| <pre>every_realm_province = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| province
|-
|-
|set_relation_ward
| every_relation
|Sets scripted relationship
| Iterate through scripted relations of a given type or multiple types, if someone is multiple relations they will only be in the list once
|Unspecified
| <pre>every_relation = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| character
|-
|-
|set_sexuality
| every_same_sex_spouse_candidate
|Sets the sexuality of the character
| Iterate through all the spouse candidates of the same sex of a character.
|Unspecified
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
|character
every_same_sex_spouse_candidate = { limit = { <triggers> } <effects> }</pre>
|
| character
| character
|-
|-
|set_to_lowborn
| every_scheme
|Set the character to lowborn
| Iterate through all schemes owned by the character
|Unspecified
| <pre>every_scheme = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| scheme
|-
|-
|set_vassal_contract_modification_blocked
| every_secret
|Blocks the vassal contract from being modified with regards to being checked by 'vassal_contract_is_blocked_from_modification'
| Iterate through all secrets of the character
|Unspecified
| <pre>every_secret = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| secret
|-
|-
|spawn_army
| every_sibling
|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.
| Iterate through all siblings
|spawn_army = {
| <pre>every_sibling = { limit = { <triggers> } <effects> }</pre>
levies = int/script value # optional, number of men
| character
men_at_arms = { # optional, multiple can be specified. Need either levies or MAA
| character
     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
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
|
|-
|-
|start_default_task
| every_sponsored_inspiration
|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).
| Iterate through all sponsored inspirations
|Unspecified
| <pre>every_sponsored_inspiration = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| inspiration
|-
|-
|start_scheme
| every_spouse
|starts a scheme  = { type = X target = Y }
| Iterate through all spouses
|Unspecified
| <pre>every_spouse = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| character
|-
|-
|start_war
| every_spouse_candidate
|Starts a war. 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.
| Iterate through all the spouse candidates of a character.
|start_war = { casus_belli/cb = X target = Y claimant = Z target_title = W1 target_title = W2 ... }
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
|character
every_spouse_candidate = { limit = { <triggers> } <effects> }</pre>
|
| character
| character
|-
| every_stewardship_councillor
| Iterate through all stewardship-based councillors
| <pre>every_stewardship_councillor = { limit = { <triggers> } <effects> }</pre>
| character
| character
|-
| every_sub_realm_barony
| Iterate through all baronies in sub-realm
| <pre>every_sub_realm_barony = { limit = { <triggers> } <effects> }</pre>
| character
| landed title
|-
| every_sub_realm_county
| Iterate through all counties in sub-realm
| <pre>every_sub_realm_county = { limit = { <triggers> } <effects> }</pre>
| character
| landed title
|-
|-
|stress_impact
| every_sub_realm_duchy
|Stress impact according to specified traits (trait = value), use base = value for a base value that's always added
| Iterate through all duchies in sub-realm
|Unspecified
| <pre>every_sub_realm_duchy = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| landed title
|-
|-
|use_hook
| every_sub_realm_empire
|Uses a hook a character has (removes if weak, puts on cooldown if strong)
| Iterate through all empires in sub-realm
|use_hook = some_character
| <pre>every_sub_realm_empire = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| landed title
|-
|-
|vassal_contract_decrease_obligation_level
| every_sub_realm_kingdom
|decrease the obligation level of the scoped character's vassal contract
| Iterate through all kingdoms in sub-realm
|Unspecified
| <pre>every_sub_realm_kingdom = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| landed title
|-
|-
|vassal_contract_increase_obligation_level
| every_sub_realm_title
|increase the obligation level of the scoped character's vassal contract
| Iterate through all titles in sub-realm
|Unspecified
| <pre>every_sub_realm_title = { limit = { <triggers> } <effects> }</pre>
|character
| character
|
| landed title
|-
|-
|vassal_contract_set_obligation_level
| every_targeting_faction
|change the obligation level of the scoped character's vassal contract
| Iterate through all factions targeting the scope character
|vassal_contract_set_obligation_level = { type = name level = 1 } # index to obligation level
| <pre>every_targeting_faction = { limit = { <triggers> } <effects> }</pre>
vassal_contract_set_obligation_level = { type = name level = feudal_obligation_low }
| character
|character
| faction
|
|-
|-
|visit_court_of
| every_targeting_scheme
|Add the scope character as the target character's guest
| Iterate through all schemes targeting the character
|Unspecified
| <pre>every_targeting_scheme = { limit = { <triggers> } <effects> }</pre>
|character
| character
|character
| scheme
|-
|-
|add_faction_discontent
| every_targeting_secret
|add_faction_discontent = X adds (or subtracts) discontent to the scope faction
| Iterate through all secrets that target the specified scope
|Unspecified
| <pre>every_targeting_secret = { limit = { <triggers> } <effects> }</pre>
|faction
| character
|
| secret
|-
|-
|destroy_faction
| every_traveling_family_member
|the scope faction is destoryed [yes|no]
| Iterate though all characters that should travel with the scoped one (when moving between courts for instance); includes the scoped character
|Unspecified
| <pre>every_traveling_family_member = { limit = { <triggers> } <effects> }</pre>
|faction
| character
|
| character
|-
|-
|every_faction_county_member
| every_truce_holder
|Iterate through all faction county members
| Iterate through all characters that have a truce on this character
|every_faction_county_member = { limit = { <triggers> } <effects> }
| <pre>every_truce_holder = { limit = { <triggers> } <effects> }</pre>
|faction
| character
|landed title
| character
|-
|-
|every_faction_member
| every_truce_target
|Iterate through all faction character members
| Iterate through all characters this character has a truce on
|every_faction_member = { limit = { <triggers> } <effects> }
| <pre>every_truce_target = { limit = { <triggers> } <effects> }</pre>
|faction
| character
|character
| character
|-
|-
|faction_remove_war
| every_unspent_known_secret
|Removes the war currently associated with the faction
| Iterate through all unspent secrets known by the character
|faction_remove_war = yes
| <pre>every_unspent_known_secret = { limit = { <triggers> } <effects> }</pre>
|faction
| character
|
| secret
|-
|-
|faction_start_war
| every_vassal
|The scope faction starts the war agains their target.
| Iterate through all DIRECT vassals
|faction_start_war = {
| <pre>every_vassal = { limit = { <triggers> } <effects> }</pre>
   title = [optional]
| character
}
| character
|faction
|-
|-
|ordered_faction_county_member
| every_vassal_or_below
|Iterate through all faction county members
| Iterate through ALL vassals, not just direct vassals
|ordered_faction_county_member = {
| <pre>every_vassal_or_below = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| character
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> }
|faction
|landed title
|-
|-
|ordered_faction_member
| every_war_ally
|Iterate through all faction character members
| Iterate through all direct war allies
|ordered_faction_member = {
| <pre>every_war_ally = { limit = { <triggers> } <effects> }</pre>
limit = { <triggers> }
| character
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> }
|faction
|character
|-
|-
|random_faction_county_member
| every_war_enemy
|Iterate through all faction county members
| Iterate through all direct war enemies
|random_faction_county_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>every_war_enemy = { limit = { <triggers> } <effects> }</pre>
|faction
| character
|landed title
| character
|-
|-
|random_faction_member
| execute_decision
|Iterate through all faction character members
| Execute the specified decision for the scoped character
|random_faction_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|faction
| character
|character
|-
|-
|remove_special_character
| finish_council_task
|Removes the special character for the scope faction
| The councillor finish the current assigned task successfully.
|Unspecified
| <pre></pre>
|faction
| character
|
|-
|-
|remove_special_title
| fire_councillor
|Removes the special character for the scope faction
| The scope character fires the target character form teh council.
|Unspecified
| <pre></pre>
|faction
| character
|
| character
|-
|-
|set_special_character
| forbid_from_scheme
|Sets the special character for the scope faction
| Forbid the scope character from joining the target scheme as an agent (and kick the character out if already in the scheme)
|Unspecified
| <pre></pre>
|faction
| character
|character
| scheme
|-
|-
|set_special_title
| force_add_to_scheme
|Sets the special title for the scope faction
| Adds a character as an agent to the scheme and forces them to stay
|Unspecified
| <pre>{
|faction
   scheme = target_Scheme
|landed title
   days/months/years = duration
}</pre>
| character
|-
|-
|add_attacker
| force_character_skill_recalculation
|adds the target character to the scope war as an attacker
| Forces a character's skills to be recalculated immediately, bypassing the wait for the daily tick.
|Unspecified
| <pre>NOTE: Only use this when *absolutely* necessary, as it will impact performance negatively if misused
|war
  Usage: force_character_skill_recalculation = yes/no</pre>
|character
| character
|-
|-
|add_defender
| force_vote_as
|adds the target character to the scope war as a defender
| Forces the character to vote the same as the target
|Unspecified
| <pre>force_vote_as = { target = someone days/months/years = x }</pre>
|war
| character
|character
|-
|-
|end_war
| get_title
|ends the war with the specified winner, end_war = attacker/defender/white_peace
| gives a title to a character
|Unspecified
| <pre></pre>
|war
| character
|
| landed title
|-
|-
|every_war_attacker
| give_nickname
|Iterate through all attackers in the war
| Give a nickname to this character
|every_war_attacker = { limit = { <triggers> } <effects> }
| <pre></pre>
|war
| character
|character
|-
|-
|every_war_defender
| imprison
|Iterate through all defenders in the war
| 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
|every_war_defender = { limit = { <triggers> } <effects> }
| <pre></pre>
|war
| character
|character
|-
|-
|every_war_participant
| join_faction
|Iterate through all participants in the war
| the character in the scope joins the assigned faction
|every_war_participant = { limit = { <triggers> } <effects> }
| <pre></pre>
|war
| character
|character
| faction
|-
|-
|ordered_war_attacker
| join_faction_forced
|Iterate through all attackers in the war
| the character in the scope is forced to join a faction by a character for a defined time,
|ordered_war_attacker = {
| <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
| character
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|
<effects> }
|-
|war
| join_faction_skip_check
|character
| the character in the scope joins the assigned faction skiping the can_character_join trigger
| <pre></pre>
| character
| faction
|-
| learn_court_language_of
| The character learns the court language of the target characterlearn_court_language_of = scope:target_character
| <pre></pre>
| character
| character
|-
| learn_language
| The character learns the languagelearn_language = language_norwegian
| <pre></pre>
| character
|
|-
| learn_language_of_culture
| The character learns the language of the target culturelearn_language_of_culture = scope:target_culture
| <pre></pre>
| character
| culture
|-
| leave_faction
| the charcter in the scope leaves the assigned faction
| <pre></pre>
| character
| faction
|-
| make_claim_strong
| makes a claim strong (character adds the claim if not having it already)
| <pre></pre>
| character
| landed title
|-
|-
|ordered_war_defender
| make_claim_weak
|Iterate through all defenders in the war
| makes a claim weak (character adds the claim if not having it already)
|ordered_war_defender = {
| <pre></pre>
limit = { <triggers> }
| character
order_by = script_value
| landed title
position = int
min = int
max = 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
| make_concubine
|Iterate through all participants in the war
| Makes the target character a concubine of the scope character, the target should not be imprisoned
|ordered_war_participant = {
| <pre></pre>
limit = { <triggers> }
| character
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> }
|war
|character
|-
|-
|random_war_attacker
| make_pregnant
|Iterate through all attackers in the war
| makes a character pregnant
|random_war_attacker = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre> father= 'the real father'
|war
number_of_children= X
|character
known_bastard=yes/no</pre>
| character
|-
|-
|random_war_defender
| make_pregnant_no_checks
|Iterate through all defenders in the war
| makes a character pregnant. Doesn't error on things like celibacy
|random_war_defender = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre> father= 'the real father'
|war
number_of_children= X
|character
known_bastard=yes/no</pre>
| character
|-
|-
|random_war_participant
| make_trait_active
|Iterate through all participants in the war
| Activates an inactive trait. Tooltip will not be shown if the character cannot have the trait.
|random_war_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|war
| character
|character
|-
|-
|remove_participant
| make_trait_active_force_tooltip
|removes the target character from the scope war
| Activates an inactive trait. Tooltip will be shown even if the character cannot have the trait.
|Unspecified
| <pre></pre>
|war
| character
|character
|-
|-
|set_called_to
| make_trait_inactive
|sets the target character as already called to the scope war
| Makes a current trait of a character inactive. Tooltip will not be shown if the character doesn't have the trait.
|Unspecified
| <pre></pre>
|war
| character
|character
|-
|-
|set_casus_belli
| make_trait_inactive_force_tooltip
|sets the casus belli of the scope war
| Makes a current trait of a character inactive. Tooltip will be shown even if the character doesn't have the trait.
|Unspecified
| <pre></pre>
|war
| character
|
|-
|-
|activate_holy_site
| make_unprunable
|Activate an inactive holy site<faith_scope> = { activate_holy_site = <holy_site_name> }
| 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
|Unspecified
| <pre></pre>
|faith
| character
|
|-
|-
|add_doctrine
| marry
|Add doctrine to faith<faith_scope> = { add_doctrine = <doctrine_name> }
| Marries the scoped character to the target character.
|Unspecified
| <pre>marry = target</pre>
|faith
| character
|
| character
|-
|-
|change_fervor
| marry_matrilineal
|Changes the fervor of the faith by the given value
| Marries the scoped character to the target character matrilineally.
|change_fervor = script value
| <pre>marry_matrilineal = target</pre>
|faith
| character
|
| character
|-
|-
|every_defensive_great_holy_wars
| move_to_pool
|Iterate through all great holy wars this faith is defending against
| The scoped character (courtier or guest) leaves their current court and moves into the pool
|every_defensive_great_holy_wars = { limit = { <triggers> } <effects> }
| <pre>scope:guest = { move_to_pool = yes }</pre>
|faith
| character
|great holy war
|-
|-
|every_faith_holy_order
| move_to_pool_at
|Iterate through all holy orders of the faith
| The scoped character (courtier/guest/pool character) leaves their current court (if any) and moves into the pool of the specified province
|every_faith_holy_order = { limit = { <triggers> } <effects> }
| <pre>scope:guest = { move_to_pool_at = scope:some_province }</pre>
|faith
| character
|holy order
| province
|-
|-
|every_holy_site
| open_appoint_court_position_window
|Iterate through all holy site baronies of a faith
| Opens the appointment window for the specified court position with scoped character as liege
|every_holy_site = { limit = { <triggers> } <effects> }
| <pre></pre>
|faith
| character
|landed title
|-
|-
|ordered_defensive_great_holy_wars
| ordered_alert_creatable_title
|Iterate through all great holy wars this faith is defending against
| Iterate through all titles that can be created by the character. (only for alerts)
|ordered_defensive_great_holy_wars = {
| <pre>ordered_alert_creatable_title = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第5,140行: 第5,997行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|faith
| character
|great holy war
| landed title
|-
|-
|ordered_faith_holy_order
| ordered_alert_usurpable_title
|Iterate through all holy orders of the faith
| Iterate through all titles that can be usurped by the character. (only for alerts)
|ordered_faith_holy_order = {
| <pre>ordered_alert_usurpable_title = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第5,153行: 第6,010行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|faith
| character
|holy order
| landed title
|-
|-
|ordered_holy_site
| ordered_ally
|Iterate through all holy site baronies of a faith
| Iterate through all allies
|ordered_holy_site = {
| <pre>ordered_ally = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第5,166行: 第6,023行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|faith
| character
|landed title
| character
|-
|-
|random_defensive_great_holy_wars
| ordered_ancestor
|Iterate through all great holy wars this faith is defending against
| Iterate through all the ancestors of the scope character up to 5 generations
|random_defensive_great_holy_wars = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>ordered_ancestor = {
|faith
limit = { <triggers> }
|great holy war
order_by = script_value
position = int
min = int
max = 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
|-
|-
|random_faith_holy_order
| ordered_army
|Iterate through all holy orders of the faith
| Iterate through all armies
|random_faith_holy_order = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>ordered_army = {
|faith
limit = { <triggers> }
|holy order
order_by = script_value
|-
position = int
|random_holy_site
min = int
|Iterate through all holy site baronies of a faith
max = script_value
|random_holy_site = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|faith
<effects> }</pre>
|landed title
| character
|-
| army
|remove_doctrine
|Remove doctrine from faith<faith_scope> = { remove_doctrine = <doctrine_name> }
|Unspecified
|faith
|
|-
|remove_religious_head_title
|Removes the religious head title of the faith
|remove_religious_head_title = yes
|faith
|
|-
|-
|set_religious_head_title
| ordered_character_artifact
|Sets the religious head title of the faith to the given title.
| Iterate through all artifacts in a given characters inventory
|set_religious_head_title = scope
| <pre>ordered_character_artifact = {
|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
|
|-
|set_add_claim_on_loss
|if set, any title losses will result in claims being added to the previous holder
|Unspecified
|title and vassal change
|
|-
|set_title_and_vassal_change_type
|Sets the type of change. Valid types: conquest, conquest_holy_war, conquest_claim, conquest_populist, inheritance, abdication, destroyed, created, usurped, granted, revoked, election, independency, returned, leased_out, lease_revoked, faction_demand,
|set_title_and_vassal_change_type = [type]
|title and vassal change
|
|-
|add_secret_participant
|Adds an participant to the secret
|Unspecified
|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
|Unspecified
|secret
|character
|-
|ordered_secret_knower
|Iterate through all characters who know the secret
|ordered_secret_knower = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第5,263行: 第6,062行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|secret
| character
|character
| artifact
|-
|-
|ordered_secret_participant
| ordered_character_struggle
|Iterate through participants in a secret
| Iterate through all struggles that character is involved in.
|ordered_secret_participant = {
| <pre>ordered_character_struggle = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第5,277行: 第6,076行:
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> }
<effects> }
|secret
Optional: Narrow down the involvement status *_character_struggle = { involvement = involved | interloper } </pre>
|character
| character
| struggle
|-
|-
|random_secret_knower
| ordered_character_to_title_neighboring_and_across_water_county
|Iterate through all characters who know the secret
| Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
|random_secret_knower = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>ordered_character_to_title_neighboring_and_across_water_county = {
|secret
limit = { <triggers> }
|character
order_by = script_value
|-
position = int
|random_secret_participant
min = int
|Iterate through participants in a secret
max = script_value
|random_secret_participant = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|secret
<effects> }</pre>
|character
| character
| landed title
|-
|-
|remove_secret
| ordered_character_to_title_neighboring_and_across_water_duchy
|Removes the scope secret
| Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>ordered_character_to_title_neighboring_and_across_water_duchy = {
|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> }</pre>
| character
| landed title
|-
|-
|reveal_to
| ordered_character_to_title_neighboring_and_across_water_empire
|Reveals the scope secret to the target character
| Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>ordered_character_to_title_neighboring_and_across_water_empire = {
|secret
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>
| character
| landed title
|-
|-
|set_secret_owner
| ordered_character_to_title_neighboring_and_across_water_kingdom
|Sets a new owner for the secret
| Scopes from a character to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>ordered_character_to_title_neighboring_and_across_water_kingdom = {
|secret
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>
| character
| landed title
|-
|-
|spend_by
| ordered_character_to_title_neighboring_county
|Spends the scope secret
| Scopes from a character to a neighboring county (looking trough the de Jure lieges)
|spend_by = target_character
| <pre>ordered_character_to_title_neighboring_county = {
|secret
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>
| character
| landed title
|-
|-
|generate_coa
| ordered_character_to_title_neighboring_duchy
|Generates a coat of arms for the scoped landed title, dynasty or house
| Scopes from a character to a neighboring duchy (looking trough the de Jure lieges)
|generate_coa = yes
| <pre>ordered_character_to_title_neighboring_duchy = {
|landed title, dynasty, dynasty house
limit = { <triggers> }
|
order_by = script_value
|-
position = int
|reset_coa
min = int
|Rest the coat of arms for the scoped landed title, dynasty or house to its template
max = script_value
|reset_coa = yes
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|landed title, dynasty, dynasty house
<effects> }</pre>
|
| character
|-
| landed title
|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_building
|Add building to the province<province> = { add_building = <building_name> }
|Unspecified
|province
|
|-
|add_building_slot
|Add building slot to the province
|Unspecified
|province
|
|-
|add_province_modifier
|Add a modifier to a province
|add_province_modifier = name
add_province_modifier = { modifier = name days/weeks/months/years = int }
|province
|
|-
|add_special_building
|Add a special building to the province (will also add/change a special slot if needed)
|Unspecified
|province
|
|-
|add_special_building_slot
|Add a special building slot to the province<province> = { add_special_building_slot = <building_name> }
|Unspecified
|province
|
|-
|refill_garrison
|The scoped province gets its garrison refilled. refill_levy = yes/no
|Unspecified
|province
|
|-
|-
|refill_levy
| ordered_character_to_title_neighboring_empire
|The scoped province gets its levy refilled
| Scopes from a character to a neighboring empire (looking trough the de Jure lieges)
|refill_levy = yes/no
| <pre>ordered_character_to_title_neighboring_empire = {
|province
|
|-
|remove_all_province_modifier_instances
|Remove all instances of a modifier from a province
|remove_all_province_modifier_instances = name
|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.
|set_holding_type = holding_typr
|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
|Unspecified
|province
|
|-
|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> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第5,417行: 第6,167行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|holy order
| character
|landed title
| landed title
|-
|-
|random_leased_title
| ordered_character_to_title_neighboring_kingdom
|Iterate through all titles leased to a holy order
| Scopes from a character to a neighboring kingdom (looking trough the de Jure lieges)
|random_leased_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>ordered_character_to_title_neighboring_kingdom = {
|holy order
limit = { <triggers> }
|landed title
order_by = script_value
|-
position = int
|accept_invitation_for_character
min = int
|accept a characters invitation to the activity
max = script_value
|Unspecified
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|activity
<effects> }</pre>
|character
| character
| landed title
|-
|-
|decline_invitation_for_character
| ordered_character_war
|decline a characters invitation to the activity
| Wars of the scoped character
|Unspecified
| <pre>ordered_character_war = {
|activity
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>
| character
| war
|-
|-
|every_activity_declined
| ordered_child
|Iterate through all characters who declined an activity invite to a specific activity
| Iterate through all children
|every_activity_declined = { limit = { <triggers> } <effects> }
| <pre>ordered_child = {
|activity
limit = { <triggers> }
|character
order_by = script_value
|-
position = int
|every_activity_invited
min = int
|Iterate through all characters who have unanswered invites to a specific activity
max = script_value
|every_activity_invited = { limit = { <triggers> } <effects> }
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|activity
<effects> }</pre>
|character
| character
|-
| character
|every_participant
|Iterate through all participants in an activity
|every_participant = { limit = { <triggers> } <effects> }
|activity
|character
|-
|-
|invite_character_to_activity
| ordered_claim
|invite a character to the activity
| Iterate through the titles of all claims held by a character; parameters: explicit = yes/no/all pressed = yes/no/all
|Unspecified
| <pre>ordered_claim = {
|activity
|character
|-
|ordered_activity_declined
|Iterate through all characters who declined an activity invite to a specific activity
|ordered_activity_declined = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第5,472行: 第6,219行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|activity
| character
|character
| landed title
|-
|-
|ordered_activity_invited
| ordered_claimed_artifact
|Iterate through all characters who have unanswered invites to a specific activity
| Iterate through all claimed artifacts of the scoped character
|ordered_activity_invited = {
| <pre>ordered_claimed_artifact = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第5,485行: 第6,232行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|activity
| character
|character
| artifact
|-
|-
|ordered_participant
| ordered_close_family_member
|Iterate through all participants in an activity
| Iterate through all the close family [father, mother, siblings, children, grandparents]
|ordered_participant = {
| <pre>ordered_close_family_member = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第5,498行: 第6,245行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|activity
| character
|character
| character
|-
|-
|random_activity_declined
| ordered_close_or_extended_family_member
|Iterate through all characters who declined an activity invite to a specific activity
| Iterate through all the close and extended relatives [father, mother, siblings, children, grandparents, uncles/aunts, nephew/niece, cousins]
|random_activity_declined = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>ordered_close_or_extended_family_member = {
|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
|-
|add_from_contribution_attackers
|Adds prestige, gold and piety based on contribution to allied attackers. parameters: prestige, gold, piety.
|Unspecified
|casus belli
|
|-
|add_from_contribution_defenders
|Adds prestige, gold and piety based on contribution to allied defenders. parameters: prestige, gold, piety.
|Unspecified
|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> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第5,547行: 第6,258行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|casus belli
| character
|landed title
| character
|-
|-
|random_target_title
| ordered_concubine
|Iterate through all casus belli's target titles
| Iterate through all concubines
|random_target_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>ordered_concubine = {
|casus belli
limit = { <triggers> }
|landed title
order_by = script_value
|-
position = int
|assign_commander
min = int
|Assign a commander for the scoped army
max = script_value
|assign_commander = scope:a_character
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|army
<effects> }</pre>
|character
| character
| character
|-
|-
|remove_commander
| ordered_consort
|Removes the currently assigned commander from the scoped army
| Iterate through all consorts (concubines and spouses)
|remove_commander = yes
| <pre>ordered_consort = {
|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
| character
|-
|-
|add_diplomacy_skill
| ordered_councillor
|Adds diplomacy skill
| Iterate through all councillors
|Unspecified
| <pre>ordered_councillor = {
|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>
| character
| character
|-
|-
|add_focus_progress
| ordered_court_position_employer
|Adds focus progress
| Iterates through all characters that employ the scoped character in any court position.
|Unspecified
| <pre>ordered_court_position_employer = {
|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>
| character
| character
|-
|-
|add_internal_flag
| ordered_court_position_holder
|adds effect to be read internally (no effect in the gamestate)
| Iterates through all characters employed by the scoped character in the target court position.
|Unspecified
| <pre>ordered_court_position_holder = {
|none
limit = { <triggers> }
|
order_by = script_value
|-
position = int
|add_intrigue_skill
min = int
|Adds intrigue skill
max = script_value
|Unspecified
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|none
<effects> }</pre>
|
| character
| character
|-
|-
|add_learning_skill
| ordered_courtier
|Adds learning skill
| Iterate through all courtiers
|Unspecified
| <pre>ordered_courtier = {
|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>
| character
| character
|-
|-
|add_martial_skill
| ordered_courtier_away
|Adds martial skill
| Iterate through all courtiers that are away
|Unspecified
| <pre>ordered_courtier_away = {
|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>
| character
| character
|-
|-
|add_prowess_skill
| ordered_courtier_or_guest
|Adds prowess skill
| Iterate through all courtiers and guests (pool and foreign court guests)
|Unspecified
| <pre>ordered_courtier_or_guest = {
|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>
| character
| character
|-
|-
|add_stewardship_skill
| ordered_de_jure_claim
|Adds stewardship skill
| Iterate through all de jure claims for a character
|Unspecified
| <pre>ordered_de_jure_claim = {
|none
limit = { <triggers> }
|
order_by = script_value
|-
position = int
|add_title_law
min = int
|add law to scoped title, overriding any current law from the same group. DOES NOT apply law change costs and effects.
max = script_value
|add_title_law = princely_elective_succession_law
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|none
<effects> }</pre>
|
| character
| landed title
|-
|-
|add_title_law_effects
| ordered_diplomacy_councillor
|Add law to scoped title, overriding any current law from the same group. DOES apply law change costs and effects.
| Iterate through all diplomacy-based councillors
|Unspecified
| <pre>ordered_diplomacy_councillor = {
|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>
| character
| character
|-
|-
|add_to_global_variable_list
| ordered_directly_owned_province
|Adds the event target to a variable list. X is the name of the variable. Y is an event target.
| Iterate through all directly owned provinces
|add_to_variable_list = { name = X target = Y }
| <pre>ordered_directly_owned_province = {
|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>
| character
| province
|-
|-
|add_to_list
| ordered_election_title
|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
| Iterate through all titles the scoped character can vote on
|add_to_list = <string> NOTE, if adding a permanent target to a temporary list, the whole list becomes permanent
| <pre>ordered_election_title = {
|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>
| character
| landed title
|-
|-
|add_to_local_variable_list
| ordered_equipped_character_artifact
|Adds the event target to a variable list. X is the name of the variable. Y is an event target.
| Iterate through all equipped artifacts in a given characters inventory
|add_to_variable_list = { name = X target = Y }
| <pre>ordered_equipped_character_artifact = {
|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>
| character
| artifact
|-
|-
|add_to_temporary_list
| ordered_extended_family_member
|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
| Iterate through all the extended family [uncles/aunts, nephew/niece, cousins]
|add_to_temporary_list = <string> NOTE, if adding a temporary target to a permanent list, the list will stay permanent
| <pre>ordered_extended_family_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>
| character
| character
|-
|-
|add_to_variable_list
| ordered_foreign_court_guest
|Adds the event target to a variable list. X is the name of the variable. Y is an event target.
| Iterate through all guests visiting from another court (in contrast to pool_guest they have a liege)
|add_to_variable_list = { name = X target = Y }
| <pre>ordered_foreign_court_guest = {
|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>
| character
| character
|-
|-
|assert_if
| ordered_former_concubine
|Conditionally cause an assert during run time, X is a trigger and Y is an optional string
| Iterate through all former concubines. Not persisted past death
|assert_if = { limit = { X } text = Y }
| <pre>ordered_former_concubine = {
|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>
| character
| character
|-
|-
|assert_read
| ordered_former_concubinist
|Conditionally cause an assert during read time
| Iterate through all former concubinists. Not persisted past death
|assert_read = X, X is yes or the string to be printed in the assert
| <pre>ordered_former_concubinist = {
|none
limit = { <triggers> }
|
order_by = script_value
|-
position = int
|break_betrothal
min = int
|Breaks the betrothal between the scope character to the target character
max = script_value
|break_betrothal = target
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|none
<effects> }</pre>
|character
| character
| character
|-
|-
|break_if
| ordered_former_spouse
|conditionally break execution of effects, break_if = { X }, X is a trigger
| Iterate through all former spouses
|Unspecified
| <pre>ordered_former_spouse = {
|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>
| character
| character
|-
|-
|change_global_variable
| ordered_general_councillor
|Changes the value or a numeric variable
| Iterate through all councillors that are not related to a skill
Where X is the name of the numeric variable to modify
| <pre>ordered_general_councillor = {
Where the valid operations are add, subtract, multiply, divide and modulo
limit = { <triggers> }
Y is a fixed point value, script value or event target of a value type
order_by = script_value
|change_variable = { name = X operation = Y }
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>
| character
| character
|-
|-
|change_local_variable - Changes the value or a numeric variable
| ordered_heir
Where X is the name of the numeric variable to modify
| Heirs of the scoped character
Where the valid operations are add, subtract, multiply, divide and modulo
| <pre>ordered_heir = {
Y is a fixed point value, script value or event target of a value type
limit = { <triggers> }
|change_variable = { name = X operation = Y }
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>
| character
| character
|-
|-
|change_title_holder
| ordered_heir_title
|Changes Title Holder.
| Iterate through all landed titles character is heir to
holder = 'Character that should get the title'
| <pre>ordered_heir_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.
limit = { <triggers> }
|change_title_holder = {
order_by = script_value
holder =
position = int
change =
min = int
}
max = script_value
|none
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
|-
|-
|change_title_holder_include_vassals
| ordered_heir_to_title
|Changes Title Holder.
| Iterate through all titles the scoped character is heir to
holder = 'Character that should get the title'
| <pre>ordered_heir_to_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.
limit = { <triggers> }
|change_title_holder_include_vassals = {
order_by = script_value
holder =
position = int
change =
min = int
}
max = script_value
|none
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
|-
|-
|change_trait_rank
| ordered_held_title
|Changes the trait rank = { trait = trait_group rank = change max = maximum new rank }
| Iterate through all held landed titles
|Unspecified
| <pre>ordered_held_title = {
|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>
| character
| landed title
|-
|-
|change_variable
| ordered_hired_mercenary
|Changes the value or a numeric variable
| Iterate through all hired mercenary companies
Where X is the name of the numeric variable to modify
| <pre>ordered_hired_mercenary = {
Where the valid operations are add, subtract, multiply, divide and modulo
limit = { <triggers> }
Y is a fixed point value, script value or event target of a value type
order_by = script_value
|change_variable = { name = X operation = Y }
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>
| character
| mercenary company
|-
|-
|clamp_global_variable
| ordered_hooked_character
|Clamps a variable the specified max and min
| Iterate through all characters this character has a hook on
Where X is the name of the variable
| <pre>ordered_hooked_character = {
Where Y and Z are script values
limit = { <triggers> }
|clamp_variable = { name = X max = Y min = Z }
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>
| character
| character
|-
|-
|clamp_local_variable
| ordered_hostile_raider
|Clamps a variable the specified max and min
| Iterate through anyone the character is hostile to due to their top-liege's realm having been raided
Where X is the name of the variable
| <pre>ordered_hostile_raider = {
Where Y and Z are script values
limit = { <triggers> }
|clamp_variable = { name = X max = Y min = Z }
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>
| character
| character
|-
|-
|clamp_variable
| ordered_intrigue_councillor
|Clamps a variable the specified max and min
| Iterate through all intrigue-based councillors
Where X is the name of the variable
| <pre>ordered_intrigue_councillor = {
Where Y and Z are script values
limit = { <triggers> }
|clamp_variable = { name = X max = Y min = Z }
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>
| character
| character
|-
|-
|clear_global_variable_list
| ordered_knight
|Empties the list
| Iterate through all knights
|clear_global_variable_list = variable_name
| <pre>ordered_knight = {
|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>
| character
| character
|-
|-
|clear_local_variable_list
| ordered_known_secret
|Empties the list
| Iterate through all secrets known by the character
|clear_local_variable_list = variable_name
| <pre>ordered_known_secret = {
|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>
| character
| secret
|-
|-
|clear_saved_scope
| ordered_learning_councillor
|Clears a saved scope from the top scope
| Iterate through all learning-based councillors
|clear_saved_scope = cool_scope
| <pre>ordered_learning_councillor = {
|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>
| character
| character
|-
|-
|clear_variable_list
| ordered_liege_or_above
|Empties the list
| Iterate through all lieges above a character (skipping the character themselves)
|clear_variable_list = variable_name
| <pre>ordered_liege_or_above = {
|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>
| character
| character
|-
|-
|close_all_views
| ordered_martial_councillor
|Closes all views
| Iterate through all martial-based councillors
|close_all_views = yes
| <pre>ordered_martial_councillor = {
|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>
| character
| character
|-
|-
|close_view
| ordered_neighboring_and_across_water_realm_same_rank_owner
|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.
| 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)
|close_view = {
| <pre>ordered_neighboring_and_across_water_realm_same_rank_owner = {
   view = <view name>
limit = { <triggers> }
   player = scope:character # optional, else closes for all players who execute the effect
order_by = script_value
}
position = int
close_view = <view name>
min = int
|none
max = 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
|-
|-
|complete_activity
| ordered_neighboring_and_across_water_top_liege_realm
|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
| 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
|Unspecified
| <pre>ordered_neighboring_and_across_water_top_liege_realm = {
|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>
| character
| landed title
|-
|-
|create_betrothal
| ordered_neighboring_and_across_water_top_liege_realm_owner
|Betroth the scope character to the target character, create_betrothal = target (at least one of the characters need to not be adult)
| 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
|Unspecified
| <pre>ordered_neighboring_and_across_water_top_liege_realm_owner = {
|none
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>
| character
| character
|-
|-
|create_betrothal_matrilineal
| ordered_neighboring_realm_same_rank_owner
|Betroth the scope character to the target character matrilineally, create_betrothal_matrilineal = target (at least one of the characters need to not be adult)
| 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)
|Unspecified
| <pre>ordered_neighboring_realm_same_rank_owner = {
|none
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>
| character
| character
|-
|-
|create_character
| ordered_neighboring_top_liege_realm
|Creates a character
| 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
|create_character = {
| <pre>ordered_neighboring_top_liege_realm = {
save_event_target_as = flag #save the character as an event target
limit = { <triggers> }
save_temporary_event_target_as = flag #save the character as a temporary event target
order_by = script_value
name =
position = int
age =
min = int
gender = male/female/character scope
max = script_value
gender_female_chance = script_value #Range (0..100)
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
opposite_gender = character scope
<effects> }</pre>
trait = #add this trait
| character
random_traits_list = {
| landed title
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
| ordered_neighboring_top_liege_realm_owner
|Creates a dynamic title. The title will be saved to scope:new_titleusage:
| 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
|create_dynamic_title = {
| <pre>ordered_neighboring_top_liege_realm_owner = {
tier = <tier>
limit = { <triggers> }
name = key/dynamic description adjective = key/dynamic description (optional; name used if not specified)}
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>
| character
| character
|-
|-
|create_holy_order
| ordered_opposite_sex_spouse_candidate
|Create a new holy order
| Iterate through all the spouse candidates of the opposite sex of a character.
|create_holy_order = {
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
   leader = scope:a_character
ordered_opposite_sex_spouse_candidate = {
   capital = scope:a_barony_title
limit = { <triggers> }
   save_scope_as/save_temporary_scope_as = new_holy_order # optional way to get a reference to the new holy order
order_by = script_value
}
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>
| character
| character
|-
|-
|create_title_and_vassal_change
| ordered_owned_story
|starts a title and vassal change and saves it as a temporary event target
| Iterate through all owned stories for a character
|Unspecified
| <pre>ordered_owned_story = {
|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>
| character
| story cycle
|-
|-
|custom_description
| ordered_parent
|Wraps effects that get a custom description instead of the auto-generated one
| Iterate through all (both) parents
|custom_description = {
| <pre>ordered_parent = {
text = <effect_localization_key>
limit = { <triggers> }
subject = <optional subject scope> #defaults to current scope
order_by = script_value
object = <optional object scope>
position = int
value = <optional script value>
min = int
... effects ...
max = script_value
}
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|none
<effects> }</pre>
|
| character
| character
|-
|-
|custom_description_no_bullet
| ordered_patroned_holy_order
|Wraps effects that get a custom description instead of the auto-generated one. Also ensures no bullet point appears
| Iterate through all holy orders that the scoped character is a patron of
|custom_description_no_bullet = {
| <pre>ordered_patroned_holy_order = {
text = <effect_localization_key>
limit = { <triggers> }
subject = <optional subject scope> #defaults to current scope
order_by = script_value
object = <optional object scope>
position = int
value = <optional script value>
min = int
... effects ...
max = script_value
}
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|none
<effects> }</pre>
|
| character
| holy order
|-
|-
|custom_label
| ordered_personal_claimed_artifact
|just a tooltip, the scope as object (for grouping, localization)
| Iterate through all personally claimed artifacts of the scoped character
|Unspecified
| <pre>ordered_personal_claimed_artifact = {
|none
limit = { <triggers> }
|
order_by = script_value
|-
position = int
|custom_tooltip
min = int
|just a tooltip, the scope as subject (for grouping, localization)
max = script_value
|Unspecified
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|none
<effects> }</pre>
|
| character
| artifact
|-
|-
|debug_log
| ordered_pinned_character
|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
| Iterate through characters this player has pinned
|Unspecified
| <pre>ordered_pinned_character = {
|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>
| character
| character
|-
|-
|debug_log_date
| ordered_pinning_character
|Logs the current date to the debug.log
| Iterate through characters whose player has this character pinned
|Unspecified
| <pre>ordered_pinning_character = {
|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>
| character
| character
|-
|-
|debug_log_scopes
| ordered_played_character
|Log the current scope to the debug log when this effect executes yes = full scope info, no=only current scope
| Iterate through all characters the player playing this character has played. Matches the game over legacy, except for excluding the currently played character
|Unspecified
| <pre>ordered_played_character = {
|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>
| character
| character
|-
|-
|divorce
| ordered_player_heir
|Divorces the scope character from the target character.
| Iterate through player heirs, capped at the first 10
|divorce = target
| <pre>ordered_player_heir = {
|none
limit = { <triggers> }
|character
order_by = script_value
|-
position = int
|duel
min = int
|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
max = script_value
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
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
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
<effects> }</pre>
If localization = W is specified, the effect localization W will be used (entry in effect_localization database, not a localization key directly)
| character
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
| character
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.
|duel = {
   skill = X
   target = Y
   value = Z
   localization = W
   ... random list body
}
|none
|
|-
|-
|every_barony
| ordered_pool_guest
|Iterate through all baronies in the game
| Iterate through all guests visiting the court from the pool (in contrast to foreign_court_guest they don't have a liege)
|every_barony = { limit = { <triggers> } <effects> }
| <pre>ordered_pool_guest = {
|none
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>
| character
| character
|-
|-
|every_county
| ordered_potential_marriage_option
|Iterate through all counties in the game
| Iterate through all potential selectable marriage or betrohed options
|every_county = { limit = { <triggers> } <effects> }
| <pre>ordered_potential_marriage_option = {
|none
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>
| character
| character
|-
|-
|every_county_in_region
| ordered_pretender_title
|Iterate through all counties in the region. Put 'region = region_name' inside it
| Iterate through all landed titles character is pretender to
|every_county_in_region = { limit = { <triggers> } <effects> }
| <pre>ordered_pretender_title = {
|none
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>
| character
| landed title
|-
|-
|every_duchy
| ordered_primary_war_enemy
|Iterate through all duchies in the game
| Iterate through all primary war enemies
|every_duchy = { limit = { <triggers> } <effects> }
| <pre>ordered_primary_war_enemy = {
|none
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>
| character
| character
|-
|-
|every_empire
| ordered_prisoner
|Iterate through all empires in the game
| Iterate through all prisoners
|every_empire = { limit = { <triggers> } <effects> }
| <pre>ordered_prisoner = {
|none
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>
| character
| character
|-
|-
|every_in_global_list
| ordered_prowess_councillor
|Iterate through all items in global list. list = name or variable = name
| Iterate through all prowess-based councillors
|every_in_global_list = { limit = { <triggers> } <effects> }
| <pre>ordered_prowess_councillor = {
|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>
| character
| character
|-
|-
|every_in_list
| ordered_raid_target
|Iterate through all items in list. list = name or variable = name
| Iterate through anyone the character is hostile to due to having raided them. Only returns top lieges
|every_in_list = { limit = { <triggers> } <effects> }
| <pre>ordered_raid_target = {
|none
limit = { <triggers> }
|
order_by = script_value
|-
position = int
|every_in_local_list
min = int
|Iterate through all items in local list. list = name or variable = name
max = script_value
|every_in_local_list = { limit = { <triggers> } <effects> }
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|none
<effects> }</pre>
|
| character
| character
|-
|-
|every_independent_ruler
| ordered_realm_county
|Independent rulers list with a COUNT tier o above
| Iterate through all counties in the realm. Based on top liege
|every_independent_ruler = { limit = { <triggers> } <effects> }
| <pre>
|none
ordered_realm_county = {
|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>
| character
| landed title
|-
|-
|every_kingdom
| ordered_realm_de_jure_duchy
|Iterate through all kingdoms in the game
| Iterate through all de jure duchies that have at least one county in the realm. Based on top liege
|every_kingdom = { limit = { <triggers> } <effects> }
| <pre>
|none
ordered_realm_de_jure_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>
| character
| landed title
|-
|-
|every_living_character
| ordered_realm_de_jure_empire
|Iterate through all living characters
| Iterate through all de jure empire that have at least one county in the realm. Based on top liege
|every_living_character = { limit = { <triggers> } <effects> }
| <pre>
|none
ordered_realm_de_jure_empire = {
|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>
| character
| landed title
|-
|-
|every_player
| ordered_realm_de_jure_kingdom
|Iterate through all player characters
| Iterate through all de jure kingdom that have at least one county in the realm. Based on top liege
|every_player = { limit = { <triggers> } <effects> }
| <pre>
|none
ordered_realm_de_jure_kingdom = {
|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>
| character
| landed title
|-
|-
|every_pool_character
| ordered_realm_province
|Iterate through all characters in the pool of the given province
| Iterate through all realm provinces of a character
|every_pool_character = { limit = { <triggers> } <effects> }
| <pre>ordered_realm_province = {
|none
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>
| character
| province
|-
|-
|every_province
| ordered_relation
|Iterate through all provinces (skips non-land and impassable provinces)
| 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_province = { limit = { <triggers> } <effects> }
| <pre>ordered_relation = {
|none
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>
| character
| character
|-
|-
|every_religion_global
| ordered_same_sex_spouse_candidate
|Iterate through all religions in the game
| Iterate through all the spouse candidates of the same sex of a character.
|every_religion_global = { limit = { <triggers> } <effects> }
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
|none
ordered_same_sex_spouse_candidate = {
|religion
limit = { <triggers> }
order_by = script_value
position = int
min = int
max = 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
|-
|-
|every_ruler
| ordered_scheme
|Rulers list with a COUNT tier o above
| Iterate through all schemes owned by the character
|every_ruler = { limit = { <triggers> } <effects> }
| <pre>ordered_scheme = {
|none
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>
| character
| scheme
|-
|-
|hidden_effect
| ordered_secret
|Effect not shown in tooltips
| Iterate through all secrets of the character
|Unspecified
| <pre>ordered_secret = {
|none
limit = { <triggers> }
|
order_by = script_value
|-
position = int
|multiply_focus_progress
min = int
|Multiplies focus progress
max = script_value
|Unspecified
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
|none
<effects> }</pre>
|
| character
|-
| secret
|open_interaction_window
|Tries to open the defined view.
|open_interaction_window = {
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
| ordered_sibling
|Tries to open the defined view with scope data.
| Iterate through all siblings
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>ordered_sibling = {
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
}
open_view_data = <view name>
for example: scope:faith = { open_view_data = faith_conversion }
|none
|
|-
|ordered_barony
|Iterate through all baronies in the game
|ordered_barony = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,116行: 第7,096行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|landed title
| character
|-
|-
|ordered_county
| ordered_sponsored_inspiration
|Iterate through all counties in the game
| Iterate through all sponsored inspirations
|ordered_county = {
| <pre>ordered_sponsored_inspiration = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,129行: 第7,109行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|landed title
| inspiration
|-
|-
|ordered_county_in_region
| ordered_spouse
|Iterate through all counties in the region. Put 'region = region_name' inside it
| Iterate through all spouses
|ordered_county_in_region = {
| <pre>ordered_spouse = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,142行: 第7,122行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|landed title
| character
|-
|-
|ordered_duchy
| ordered_spouse_candidate
|Iterate through all duchies in the game
| Iterate through all the spouse candidates of a character.
|ordered_duchy = {
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
ordered_spouse_candidate = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,155行: 第7,136行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|landed title
| character
|-
|-
|ordered_empire
| ordered_stewardship_councillor
|Iterate through all empires in the game
| Iterate through all stewardship-based councillors
|ordered_empire = {
| <pre>ordered_stewardship_councillor = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,168行: 第7,149行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|landed title
| character
|-
|-
|ordered_in_global_list
| ordered_sub_realm_barony
|Iterate through all items in global list. list = name or variable = name
| Iterate through all baronies in sub-realm
|ordered_in_global_list = {
| <pre>ordered_sub_realm_barony = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,181行: 第7,162行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|
| landed title
|-
|-
|ordered_in_list
| ordered_sub_realm_county
|Iterate through all items in list. list = name or variable = name
| Iterate through all counties in sub-realm
|ordered_in_list = {
| <pre>ordered_sub_realm_county = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,194行: 第7,175行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|
| landed title
|-
|-
|ordered_in_local_list
| ordered_sub_realm_duchy
|Iterate through all items in local list. list = name or variable = name
| Iterate through all duchies in sub-realm
|ordered_in_local_list = {
| <pre>ordered_sub_realm_duchy = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,207行: 第7,188行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|
| landed title
|-
|-
|ordered_independent_ruler
| ordered_sub_realm_empire
|Independent rulers list with a COUNT tier o above
| Iterate through all empires in sub-realm
|ordered_independent_ruler = {
| <pre>ordered_sub_realm_empire = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,220行: 第7,201行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|character
| landed title
|-
|-
|ordered_kingdom
| ordered_sub_realm_kingdom
|Iterate through all kingdoms in the game
| Iterate through all kingdoms in sub-realm
|ordered_kingdom = {
| <pre>ordered_sub_realm_kingdom = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,233行: 第7,214行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|landed title
| landed title
|-
|-
|ordered_living_character
| ordered_sub_realm_title
|Iterate through all living characters
| Iterate through all titles in sub-realm
|ordered_living_character = {
| <pre>ordered_sub_realm_title = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,246行: 第7,227行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|character
| landed title
|-
|-
|ordered_player
| ordered_targeting_faction
|Iterate through all player characters
| Iterate through all factions targeting the scope character
|ordered_player = {
| <pre>ordered_targeting_faction = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,259行: 第7,240行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|character
| faction
|-
|-
|ordered_pool_character
| ordered_targeting_scheme
|Iterate through all characters in the pool of the given province
| Iterate through all schemes targeting the character
|ordered_pool_character = {
| <pre>ordered_targeting_scheme = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,272行: 第7,253行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|character
| scheme
|-
|-
|ordered_province
| ordered_targeting_secret
|Iterate through all provinces (skips non-land and impassable provinces)
| Iterate through all secrets that target the specified scope
|ordered_province = {
| <pre>ordered_targeting_secret = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,285行: 第7,266行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|province
| secret
|-
|-
|ordered_religion_global
| ordered_traveling_family_member
|Iterate through all religions in the game
| Iterate though all characters that should travel with the scoped one (when moving between courts for instance); includes the scoped character
|ordered_religion_global = {
| <pre>ordered_traveling_family_member = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,298行: 第7,279行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|religion
| character
|-
|-
|ordered_ruler
| ordered_truce_holder
|Rulers list with a COUNT tier o above
| Iterate through all characters that have a truce on this character
|ordered_ruler = {
| <pre>ordered_truce_holder = {
limit = { <triggers> }
limit = { <triggers> }
order_by = script_value
order_by = script_value
第6,311行: 第7,292行:
max = script_value
max = script_value
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> }
<effects> }</pre>
|none
| character
|character
| character
|-
|-
|pan_camera_to_province
| ordered_truce_target
|Pans the camera to the specified province
| Iterate through all characters this character has a truce on
|pan_camera_to_province = scope:army.location
| <pre>ordered_truce_target = {
|none
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>
| character
| character
|-
|-
|pan_camera_to_title
| ordered_unspent_known_secret
|Pans the camera to the specified title
| Iterate through all unspent secrets known by the character
|pan_camera_to_title = capital_barony
| <pre>ordered_unspent_known_secret = {
|none
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>
| character
| secret
|-
|-
|random
| ordered_vassal
|A random effect. X is a chance of the enclosed effects being fired and can be modified by optional value modifier list (AKA MTTH) Y
| Iterate through all DIRECT vassals
|random = { chance = X modifier = Y effects... }
| <pre>ordered_vassal = {
|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>
| character
| character
|-
|-
|random_barony
| ordered_vassal_or_below
|Iterate through all baronies in the game
| Iterate through ALL vassals, not just direct vassals
|random_barony = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>ordered_vassal_or_below = {
|none
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>
| character
| character
|-
|-
|random_county
| ordered_war_ally
|Iterate through all counties in the game
| Iterate through all direct war allies
|random_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>ordered_war_ally = {
|none
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>
| character
| character
|-
|-
|random_county_in_region
| ordered_war_enemy
|Iterate through all counties in the region. Put 'region = region_name' inside it
| Iterate through all direct war enemies
|random_county_in_region = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>ordered_war_enemy = {
|none
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>
| character
| character
|-
|-
|random_duchy
| pay_long_term_gold
|Iterate through all duchies in the game
| the scope character pays gold to the target character, pay_gold = { target = X gold = Y } (AI budget category long term)
|random_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|none
| character
|landed title
|
|-
| 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)
| <pre></pre>
| character
|-
|-
|random_empire
| pay_short_term_gold
|Iterate through all empires in the game
| the scope character pays gold to the target character, pay_gold = { target = X gold = Y } (AI budget category short term)
|random_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|none
| character
|landed title
|-
|-
|random_in_global_list
| pay_short_term_income
|Iterate through all items in global list. list = name or variable = name
| 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)
|random_in_global_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|none
| character
|
|-
|-
|random_in_list
| play_music_cue
|Iterate through all items in list. list = name or variable = name
| Plays the specified music cue.
|random_in_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|none
| character
|
|-
|-
|random_in_local_list
| play_sound_effect
|Iterate through all items in local list. list = name or variable = name
| Plays the specified sound effect.
|random_in_local_list = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre></pre>
|none
| character
|
|-
|-
|random_independent_ruler
| random_alert_creatable_title
|Independent rulers list with a COUNT tier o above
| Iterate through all titles that can be created by the character. (only for alerts)
|random_independent_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>random_alert_creatable_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|character
| landed title
|-
|-
|random_kingdom
| random_alert_usurpable_title
|Iterate through all kingdoms in the game
| Iterate through all titles that can be usurped by the character. (only for alerts)
|random_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>random_alert_usurpable_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|landed title
| landed title
|-
|-
|random_list
| random_ally
|a random list effect
| Iterate through all allies
|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>random_ally = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
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).
| character
The chances can be modified by optional value modifier lists Y1, Y2... (AKA MTTH)
| character
|none
|
|-
|-
|random_living_character
| random_ancestor
|Iterate through all living characters
| Iterate through all the ancestors of the scope character up to 5 generations
|random_living_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>random_ancestor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|character
| character
|-
|-
|random_log_scopes
| random_army
|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 random log. yes = full scope info, no=only current scope
| Iterate through all armies
|Unspecified
| <pre>random_army = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| army
|-
|-
|random_player
| random_character_artifact
|Iterate through all player characters
| Iterate through all artifacts in a given characters inventory
|random_player = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>random_character_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|character
| artifact
|-
|-
|random_pool_character
| random_character_struggle
|Iterate through all characters in the pool of the given province
| Iterate through all struggles that character is involved in.
|random_pool_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>random_character_struggle = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
|none
Optional: Narrow down the involvement status *_character_struggle = { involvement = involved | interloper }</pre>
|character
| character
| struggle
|-
|-
|random_province
| random_character_to_title_neighboring_and_across_water_county
|Iterate through all provinces (skips non-land and impassable provinces)
| Scopes from a character to a neighboring county (incl. across water, looking trough the de Jure lieges)
|random_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>random_character_to_title_neighboring_and_across_water_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|province
| landed title
|-
|-
|random_religion_global
| random_character_to_title_neighboring_and_across_water_duchy
|Iterate through all religions in the game
| Scopes from a character to a neighboring duchy (incl. across water, looking trough the de Jure lieges)
|random_religion_global = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>random_character_to_title_neighboring_and_across_water_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|religion
| landed title
|-
|-
|random_ruler
| random_character_to_title_neighboring_and_across_water_empire
|Rulers list with a COUNT tier o above
| Scopes from a character to a neighboring empire (incl. across water, looking trough the de Jure lieges)
|random_ruler = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>random_character_to_title_neighboring_and_across_water_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|character
| landed title
|-
|-
|remove_from_list
| random_character_to_title_neighboring_and_across_water_kingdom
|Removes the current scope from a named list remove_from_list = <string>
| Scopes from a character to a neighboring kingdom (incl. across water, looking trough the de Jure lieges)
|Unspecified
| <pre>random_character_to_title_neighboring_and_across_water_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| landed title
|-
|-
|remove_global_variable
| random_character_to_title_neighboring_county
|Removes a variable
| Scopes from a character to a neighboring county (looking trough the de Jure lieges)
|remove_global_variable = variable_name
| <pre>random_character_to_title_neighboring_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| landed title
|-
|-
|remove_list_global_variable
| random_character_to_title_neighboring_duchy
|Removes the target from a variable list
| Scopes from a character to a neighboring duchy (looking trough the de Jure lieges)
Where X is the name of the variable
| <pre>random_character_to_title_neighboring_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
Y is an event target
| character
|remove_list_global_variable = { name = X target = Y }
| landed title
|none
|
|-
|-
|remove_list_local_variable
| random_character_to_title_neighboring_empire
|Removes the target from a variable list
| Scopes from a character to a neighboring empire (looking trough the de Jure lieges)
Where X is the name of the variable
| <pre>random_character_to_title_neighboring_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
Y is an event target
| character
|remove_list_local_variable = { name = X target = Y }
| landed title
|none
|-
|
| random_character_to_title_neighboring_kingdom
| Scopes from a character to a neighboring kingdom (looking trough the de Jure lieges)
| <pre>random_character_to_title_neighboring_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| landed title
|-
|-
|remove_list_variable
| random_character_war
|Removes the target from a variable list
| Wars of the scoped character
Where X is the name of the variable
| <pre>random_character_war = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
Y is an event target
| character
|remove_list_variable = { name = X target = Y }
| war
|none
|
|-
|-
|remove_title_law
| random_child
|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 children
|remove_title_law = princely_elective_succession_law
| <pre>random_child = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| character
|-
|-
|remove_variable
| random_claim
|Removes a variable. Local or Global
| Iterate through the titles of all claims held by a character; parameters: explicit = yes/no/all pressed = yes/no/all
|remove_variable = variable_name
| <pre>random_claim = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| landed title
|-
|-
|resolve_title_and_vassal_change
| random_claimed_artifact
|Execute and destory the target title and vassal change, the change cannot be used after calling this effect
| Iterate through all claimed artifacts of the scoped character
|resolve_title_and_vassal_change = scope:change
| <pre>random_claimed_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|title and vassal change
| artifact
|-
|-
|clamp_variable
| random_close_family_member
|Rounds a variable (global or loval) to the nearest specified value
| Iterate through all the close family [father, mother, siblings, children, grandparents]
Where X is the name of the variable
| <pre>random_close_family_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
Y is a script value
| character
|clamp_variable = { name = X nearest = Y }
| character
|none
|
|-
|-
|save_scope_as
| random_close_or_extended_family_member
|Saves the current scope as an arbitrarily-named target to be referenced later in the (unbroken) event chain
| Iterate through all the close and extended relatives [father, mother, siblings, children, grandparents, uncles/aunts, nephew/niece, cousins]
|save_event_target_as = <string>
| <pre>random_close_or_extended_family_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| character
|-
|-
|save_scope_value_as
| random_concubine
|Saves a numerical or bool value as an arbitrarily-named target to be referenced later in the (unbroken) event chain
| Iterate through all concubines
|save_scope_value_as = { name = <string> value = x }
| <pre>random_concubine = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| character
|-
|-
|save_temporary_scope_as
| random_consort
|Saves the current scope as an arbitrarily-named temporary target to be referenced later in the same effect
| Iterate through all consorts (concubines and spouses)
|save_temporary_event_target_as = <string>
| <pre>random_consort = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| character
|-
|-
|save_temporary_scope_value_as
| random_councillor
|Saves a numerical or bool value as an arbitrarily-named temporary target to be referenced later in the same effect
| Iterate through all councillors
|save_temporary_scope_value_as = { name = <string> value = x }
| <pre>random_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| character
|-
|-
|set_focus_progress
| random_court_position_employer
|Sets focus progress
| Iterates through all characters that employ the scoped character in any court position.
|Unspecified
| <pre>random_court_position_employer = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| character
|-
|-
|set_generated_asexuality_chance
| random_court_position_holder
|Sets the chance for a generated character to be asexual
| Iterates through all characters employed by the scoped character in the target court position.
|set_generated_asexuality_chance = 20
| <pre>random_court_position_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| character
|-
|-
|set_generated_bisexuality_chance
| random_courtier
|Sets the chance for a generated character to be bisexual
| Iterate through all courtiers
|set_generated_bisexuality_chance = 20
| <pre>random_courtier = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| character
|-
|-
|set_generated_homosexuality_chance
| random_courtier_away
|Sets the chance for a generated character to be homosexual
| Iterate through all courtiers that are away
|set_generated_homosexuality_chance = 20
| <pre>random_courtier_away = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| character
|-
|-
|set_trait_rank
| random_courtier_or_guest
|Sets the trait rank = { trait = trait_group rank = new rank }
| Iterate through all courtiers and guests (pool and foreign court guests)
|Unspecified
| <pre>random_courtier_or_guest = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| character
|-
|-
|set_variable
| random_de_jure_claim
|Sets a variable. Either global or local.
| Iterate through all de jure claims for a character
Where X is the name of the variable used to then access it
| <pre>random_de_jure_claim = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
Y is any event target, bool, value, script value or flag (flag:W)
| character
An optional days where Z is the number of days or script value
| landed title
This variable will be accessible with <type_>var:X. With type being in a scope object or in a top scope
|-
|set_variable = { name = X value = Y days = Z }
| random_diplomacy_councillor
|none
| Iterate through all diplomacy-based councillors
|
| <pre>random_diplomacy_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
|-
|setup_claim_cb
| random_directly_owned_province
|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
| Iterate through all directly owned provinces
|setup_claim_cb = {
| <pre>random_directly_owned_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
attacker = scope:attacker
| character
defender = scope:defender
| province
claimant = scope:claimant
change = scope:change victory = yes/no
take_occupied = yes/no
}
|none
|
|-
|-
|setup_de_jure_cb
| random_election_title
|this effect will add a scope:cb_prestige_factor with a value based on what's being taken
| Iterate through all titles the scoped character can vote on
|setup_de_jure_cb = {
| <pre>random_election_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
attacker = scope:attacker
| character
defender = scope:defender
| landed title
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
}
|none
|
|-
|-
|setup_invasion_cb
| random_equipped_character_artifact
|this effect will add a scope:cb_prestige_factor with a value based on what's being taken
| Iterate through all equipped artifacts in a given characters inventory
|setup_invasion_cb = {
| <pre>random_equipped_character_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
attacker = scope:attacker
| character
defender = scope:defender
| artifact
change = scope:change victory = yes/no
take_occupied = yes/no
}
|none
|
|-
|-
|show_as_tooltip
| random_extended_family_member
|Effect only shown in tooltips (but not executed)
| Iterate through all the extended family [uncles/aunts, nephew/niece, cousins]
|Unspecified
| <pre>random_extended_family_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| character
|-
|-
|start_tutorial_lesson
| random_foreign_court_guest
|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)
| Iterate through all guests visiting from another court (in contrast to pool_guest they have a liege)
|Unspecified
| <pre>random_foreign_court_guest = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|none
| character
|
| character
|-
|-
|switch
| random_former_concubine
|Switch on a trigger for the evaluation of another trigger with an optional fallback trigger.
| Iterate through all former concubines. Not persisted past death
|switch = {
| <pre>random_former_concubine = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
trigger = simple_assign_trigger
| character
case_1 = { <effects> }
| character
case_2 = { <effects> }
case_n = { <effects> }
fallback = { <effects> }
|none
|
|-
|-
|trigger_event
| random_former_concubinist
|triggers an event or on_action
| Iterate through all former concubinists. Not persisted past death
|trigger_event = { id = X days/months/years = Y } (for events)
| <pre>random_former_concubinist = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
or
| character
trigger_event = { on_action = X days/months/years = Y } (for on_actions)
| character
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 randomly.
|none
|
|-
|-
|try_create_important_action
| random_former_spouse
|Tries to create an important action notification. Will keep the current one if already exists.
| Iterate through all former spouses
|try_create_important_action
| <pre>random_former_spouse = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
important_action_type = important_action_type_key - the important action object key to create. Must be defined.
| character
actor = character_actor - optional, can be used by the important action effect
| character
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
|Unspecified
|none
|
|-
|-
|try_create_suggestion
| random_general_councillor
|Tries to create an suggestuib notification. Will keep the current one if already exists.
| Iterate through all councillors that are not related to a skill
|try_create_suggestion
| <pre>random_general_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
suggestion_type = suggestion_type_key - the suggestion action object key to create. Must be defined.
| character
actor = character_actor - optional, can be used by the suggestion effect
| character
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
|Unspecified
|none
|
|-
|-
|battle_event
| random_heir
|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
| Heirs of the scoped character
|battle_event = { left_portrait = someone right_portrait = someone key = string }
| <pre>random_heir = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|combat side
| character
|
| character
|-
|-
|every_side_commander
| random_heir_title
|Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
| Iterate through all landed titles character is heir to
|every_side_commander = { limit = { <triggers> } <effects> }
| <pre>random_heir_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|combat side
| character
|character
| landed title
|-
|-
|every_side_knight
| random_heir_to_title
|Iterate through all knights
| Iterate through all titles the scoped character is heir to
|every_side_knight = { limit = { <triggers> } <effects> }
| <pre>random_heir_to_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|combat side
| character
|character
| landed title
|-
|-
|lose_combat
| random_held_title
|ends the combat as the losing side (doesn't end the combat if evaluated to false)
| Iterate through all held landed titles
|Unspecified
| <pre>random_held_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|combat side
| character
|
| landed title
|-
|-
|ordered_side_commander
| random_hired_mercenary
|Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
| Iterate through all hired mercenary companies
|ordered_side_commander = {
| <pre>random_hired_mercenary = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| character
order_by = script_value
| mercenary company
position = int
min = int
max = 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
| random_hooked_character
|Iterate through all knights
| Iterate through all characters this character has a hook on
|ordered_side_knight = {
| <pre>random_hooked_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| character
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> }
|combat side
|character
|-
|-
|random_side_commander
| random_hostile_raider
|Iterate through all commanders (the commanders of every army on the side, not just the one leading the battle)
| Iterate through anyone the character is hostile to due to their top-liege's realm having been raided
|random_side_commander = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>random_hostile_raider = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|combat side
| character
|character
| character
|-
|-
|random_side_knight
| random_intrigue_councillor
|Iterate through all knights
| Iterate through all intrigue-based councillors
|random_side_knight = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>random_intrigue_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|combat side
| character
|character
| character
|-
|-
|win_combat
| random_knight
|ends the combat as the winning side (doesn't end the combat if evaluated to false)
| Iterate through all knights
|Unspecified
| <pre>random_knight = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|combat side
| character
|
| character
|-
|-
|change_war_chest_gold
| random_known_secret
|Changes the amount of gold in the war chest by the given amount
| Iterate through all secrets known by the character
|change_war_chest_gold = script value
| <pre>random_known_secret = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|great holy war
| character
|
| secret
|-
|-
|change_war_chest_piety
| random_learning_councillor
|Changes the amount of piety in the war chest by the given amount
| Iterate through all learning-based councillors
|change_war_chest_piety = script value
| <pre>random_learning_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|great holy war
| character
|
| character
|-
|-
|change_war_chest_prestige
| random_liege_or_above
|Changes the amount of prestige in the war chest by the given amount
| Iterate through all lieges above a character (skipping the character themselves)
|change_war_chest_prestige = script value
| <pre>random_liege_or_above = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|great holy war
| character
|
| character
|-
|-
|divide_war_chest
| random_martial_councillor
|The scoped GHW gives out its war-chest in full or in part.
| Iterate through all martial-based councillors
|divide_war_chest = {
| <pre>random_martial_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
defenders = yes (default to attackers instead)
| character
faction = script value (default 1 for 100%)
| character
gold = no (default = yes)
piety = no (default = yes)
prestige = no (default = yes)
}
|great holy war
|
|-
|-
|do_ghw_title_handout
| random_neighboring_and_across_water_realm_same_rank_owner
|Hands out titles in the target kingdom to the GHW attacker beneficiaries.
| 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)
|do_ghw_title_handout = scope:title_and_vassal_change
| <pre>random_neighboring_and_across_water_realm_same_rank_owner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|great holy war
| character
|title and vassal change
| character
|-
|-
|every_pledged_attacker
| random_neighboring_and_across_water_top_liege_realm
|Iterate through all pledged attackers within a great holy war
| 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_pledged_attacker = { limit = { <triggers> } <effects> }
| <pre>random_neighboring_and_across_water_top_liege_realm = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|great holy war
| character
|character
| landed title
|-
|-
|every_pledged_defender
| random_neighboring_and_across_water_top_liege_realm_owner
|Iterate through all pledged defenders within a great holy war
| 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_pledged_defender = { limit = { <triggers> } <effects> }
| <pre>random_neighboring_and_across_water_top_liege_realm_owner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|great holy war
| character
|character
| character
|-
|-
|ordered_pledged_attacker
| random_neighboring_realm_same_rank_owner
|Iterate through all pledged attackers within a great holy war
| 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_pledged_attacker = {
| <pre>random_neighboring_realm_same_rank_owner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| character
order_by = script_value
| character
position = int
|-
min = int
| random_neighboring_top_liege_realm
max = script_value
| 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
check_range_bounds = no # If you don't want an error logged if the list is smaller than the min/max
| <pre>random_neighboring_top_liege_realm = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
<effects> }
| character
|great holy war
| landed title
|character
|-
| 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
| <pre>random_neighboring_top_liege_realm_owner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_opposite_sex_spouse_candidate
| Iterate through all the spouse candidates of the opposite sex of a character.
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
random_opposite_sex_spouse_candidate = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_owned_story
| Iterate through all owned stories for a character
| <pre>random_owned_story = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| story cycle
|-
| random_parent
| Iterate through all (both) parents
| <pre>random_parent = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_patroned_holy_order
| Iterate through all holy orders that the scoped character is a patron of
| <pre>random_patroned_holy_order = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| holy order
|-
| random_personal_claimed_artifact
| Iterate through all personally claimed artifacts of the scoped character
| <pre>random_personal_claimed_artifact = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| artifact
|-
| random_pinned_character
| Iterate through characters this player has pinned
| <pre>random_pinned_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_pinning_character
| Iterate through characters whose player has this character pinned
| <pre>random_pinning_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| 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
| <pre>random_played_character = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_player_heir
| Iterate through player heirs, capped at the first 10
| <pre>random_player_heir = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| 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)
| <pre>random_pool_guest = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_potential_marriage_option
| Iterate through all potential selectable marriage or betrohed options
| <pre>random_potential_marriage_option = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_pretender_title
| Iterate through all landed titles character is pretender to
| <pre>random_pretender_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| landed title
|-
| random_primary_war_enemy
| Iterate through all primary war enemies
| <pre>random_primary_war_enemy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_prisoner
| Iterate through all prisoners
| <pre>random_prisoner = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
|-
|ordered_pledged_defender
| random_prowess_councillor
|Iterate through all pledged defenders within a great holy war
| Iterate through all prowess-based councillors
|ordered_pledged_defender = {
| <pre>random_prowess_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
limit = { <triggers> }
| character
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> }
|great holy war
|character
|
|-
|-
|pledge_attacker
| random_raid_target
|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 anyone the character is hostile to due to having raided them. Only returns top lieges
|Unspecified
| <pre>random_raid_target = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|great holy war
| character
|character
| character
|-
|-
|pledge_defender
| random_realm_county
|The target character pledges themselves as a defender in the GHW. Must be of the same faith as the GHW target.
| Iterate through all counties in the realm. Based on top liege
|pledge_defender = some character
| <pre>
|great holy war
random_realm_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| character
| landed title
|-
|-
|random_pledged_attacker
| random_realm_de_jure_duchy
|Iterate through all pledged attackers within a great holy war
| Iterate through all de jure duchies that have at least one county in the realm. Based on top liege
|random_pledged_attacker = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>
|great holy war
random_realm_de_jure_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| character
| landed title
|-
|-
|random_pledged_defender
| random_realm_de_jure_empire
|Iterate through all pledged defenders within a great holy war
| Iterate through all de jure empire that have at least one county in the realm. Based on top liege
|random_pledged_defender = { limit = { <triggers> } (optional) weight = { mtth } <effects> }
| <pre>
|great holy war
random_realm_de_jure_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| character
| landed title
|-
|-
|reset_designated_winner
| random_realm_de_jure_kingdom
|The GHW stops having a designated winner
| Iterate through all de jure kingdom that have at least one county in the realm. Based on top liege
|reset_designated_winner = yes
| <pre>
|great holy war
random_realm_de_jure_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|
| character
| landed title
|-
|-
|set_designated_winner
| random_realm_province
|The target character becomes the designated winner of the GHW.
| Iterate through all realm provinces of a character
|set_designated_winner = some character
| <pre>random_realm_province = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|great holy war
| character
|character
| province
|-
|-
|set_great_holy_war_target
| random_relation
|Sets the target of the great holy war.
| Iterate through scripted relations of a given type or multiple types, if someone is multiple relations they will only be in the list once
|set_great_holy_war_target = { target_character = someone target_title = some title }
| <pre>random_relation = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|great holy war
| character
|
| character
|-
|-
|set_war_declarer
| random_same_sex_spouse_candidate
|The target character becomes the character that should declare war instead of the religious head
| Iterate through all the spouse candidates of the same sex of a character.
|set_war_declarer = some character
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
|great holy war
random_same_sex_spouse_candidate = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|character
| character
| character
|-
|-
|start_ghw_war
| random_scheme
|Starts the GHW war
| Iterate through all schemes owned by the character
|start_ghw_war = undirected_great_holy_war
| <pre>random_scheme = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|great holy war
| character
|
| scheme
|-
|-
|unpledge_attacker
| random_secret
|The target character removes their pledge as an attacker in the GHW. unpledge_attacker = some character
| Iterate through all secrets of the character
|Unspecified
| <pre>random_secret = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|great holy war
| character
|character
| secret
|-
|-
|unpledge_defender
| random_sibling
|The target character removes their pledge as a defender in the GHW
| Iterate through all siblings
|unpledge_defender = some character
| <pre>random_sibling = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
|great holy war
| character
|character
| character
|-
| random_sponsored_inspiration
| Iterate through all sponsored inspirations
| <pre>random_sponsored_inspiration = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| inspiration
|-
| random_spouse
| Iterate through all spouses
| <pre>random_spouse = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_spouse_candidate
| Iterate through all the spouse candidates of a character.
| <pre>WARNING: THIS IS VERY SLOW DO NOT DO IT OFTEN.
random_spouse_candidate = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_stewardship_councillor
| Iterate through all stewardship-based councillors
| <pre>random_stewardship_councillor = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_sub_realm_barony
| Iterate through all baronies in sub-realm
| <pre>random_sub_realm_barony = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| landed title
|-
| random_sub_realm_county
| Iterate through all counties in sub-realm
| <pre>random_sub_realm_county = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| landed title
|-
| random_sub_realm_duchy
| Iterate through all duchies in sub-realm
| <pre>random_sub_realm_duchy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| landed title
|-
| random_sub_realm_empire
| Iterate through all empires in sub-realm
| <pre>random_sub_realm_empire = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| landed title
|-
| random_sub_realm_kingdom
| Iterate through all kingdoms in sub-realm
| <pre>random_sub_realm_kingdom = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| landed title
|-
| random_sub_realm_title
| Iterate through all titles in sub-realm
| <pre>random_sub_realm_title = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| landed title
|-
| random_targeting_faction
| Iterate through all factions targeting the scope character
| <pre>random_targeting_faction = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| faction
|-
| random_targeting_scheme
| Iterate through all schemes targeting the character
| <pre>random_targeting_scheme = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| scheme
|-
| random_targeting_secret
| Iterate through all secrets that target the specified scope
| <pre>random_targeting_secret = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| 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
| <pre>random_traveling_family_member = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_truce_holder
| Iterate through all characters that have a truce on this character
| <pre>random_truce_holder = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_truce_target
| Iterate through all characters this character has a truce on
| <pre>random_truce_target = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_unspent_known_secret
| Iterate through all unspent secrets known by the character
| <pre>random_unspent_known_secret = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| secret
|-
| random_vassal
| Iterate through all DIRECT vassals
| <pre>random_vassal = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_vassal_or_below
| Iterate through ALL vassals, not just direct vassals
| <pre>random_vassal_or_below = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_war_ally
| Iterate through all direct war allies
| <pre>random_war_ally = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| random_war_enemy
| Iterate through all direct war enemies
| <pre>random_war_enemy = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| character
| character
|-
| recruit_courtier
| Recruits the target to become a courtier. Example scope:liege = { recruit_courtier = scope:new_courtier }
| <pre></pre>
| character
| character
|-
| refund_all_perks
| Refunds all perks of the character. Example: refund_all_perks = yes
| <pre></pre>
| character
|
|-
| refund_perks
| Refunds all perks of the RHS lifestyle. Example: refund_perks = intrigue_lifestyle
| <pre></pre>
| character
|
|-
| release_from_prison
| releases the character from the prison, imprison = X, where X is a boolean value
| <pre></pre>
| character
|
|-
| remove_all_character_modifier_instances
| Remove all instances of a modifier from a character
| <pre>remove_all_character_modifier_instances = name</pre>
| character
|
|-
| remove_character_flag
| removes a character flag
| <pre></pre>
| character
|
|-
| remove_character_modifier
| Remove a modifier from a character
| <pre>remove_character_modifier = name</pre>
| character
|
|-
| remove_claim
| removes an explicit (not from a living parent/grand parent) claim
| <pre></pre>
| character
| landed title
|-
| remove_concubine
| Removes the target character as a concubine of the scope character
| <pre></pre>
| character
| character
|-
| remove_courtier_or_guest
| Removes the target character (guest or courtier) from the scope character's court
| <pre>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
}
}</pre>
| character
| character
|-
| remove_decision_cooldown
| Remove the cooldown on taking a decision for the scoped character
| <pre>remove_decision_cooldown = decision_name</pre>
| 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
| <pre></pre>
| character
|
|-
| remove_interaction_cooldown
| Remove the cooldown on using an interaction for the scoped character
| <pre>remove_interaction_cooldown = interaction_name</pre>
| character
|
|-
| remove_interaction_cooldown_against
| Remove the cooldown on using an interaction against the target character for the scoped character
| <pre>remove_interaction_cooldown_against = { interaction = interaction_name target = character }</pre>
| 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
| <pre>remove_localized_text = key</pre>
| character
|
|-
| remove_long_term_gold
| removes gold from a character (AI's long term budget)
| <pre></pre>
| character
|
|-
| remove_nickname
| Removes any nickname from the current character [yes|no]
| <pre></pre>
| 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
| <pre></pre>
| character
|
|-
| remove_perk
| Remove the perk for this character
| <pre></pre>
| character
|
|-
| remove_personal_artifact_claim
| Removes a personal claim on the target artifact from the scoped character
| <pre></pre>
| 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
| <pre></pre>
| character
|
|-
| remove_relation_antiquarian
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_best_friend
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_bully
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_court_physician
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_crush
| Removes scripted relationship
| <pre></pre>
| 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
| <pre></pre>
| character
|
|-
| remove_relation_friend
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_guardian
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_intrigue_mentor
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_intrigue_student
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_lover
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_mentor
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_nemesis
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_oaf
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_potential_friend
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_potential_lover
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_potential_rival
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_rival
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_soldier_friend
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_soulmate
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_student
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_victim
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_relation_ward
| Removes scripted relationship
| <pre></pre>
| character
| character
|-
| remove_scheme_cooldown_against
| Remove the cooldown on using a scheme against the target character for the scoped character
| <pre>remove_scheme_cooldown_against = { scheme = scheme_name target = character }</pre>
| character
|
|-
| remove_short_term_gold
| removes gold from a character (AI's short term budget)
| <pre></pre>
| character
|
|-
| remove_trait
| Removes a trait from a character. Tooltip will not be shown if the character doesn't have the trait.
| <pre></pre>
| character
|
|-
| remove_trait_force_tooltip
| Removes a trait from a character. Tooltip will be shown even if the character doesn't have the trait.
| <pre></pre>
| character
|
|-
| replace_court_position
| Replaces the target character holding target court position within scoped character's court with target character
| <pre>
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</pre>
| character
|
|-
| reset_beneficiary
| The target character stops having a beneficiary. reset_beneficiary = yes
| <pre></pre>
| character
|
|-
| return_to_court
| Returns the scope character to the employers court.
| <pre></pre>
| character
|
|-
| reverse_add_opinion
| Adds a temporary reverse opinion modifier, reverse_add_opinion = { modifier = X days/months/years = Y target = Z }
| <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>
| character
|
|-
| revoke_court_position
| Revokes target position from scoped character.
| <pre>
court_position = court position type - court position type to revoke from scoped character's court</pre>
| character
|
|-
| scriptedtests_recalculate_character_modifier
| Recalculates the modifier of the scoped character
| <pre></pre>
| character
|
|-
| scriptedtests_recalculate_succession
| Recalculates the line of succession of the scoped character
| <pre></pre>
| character
|
|-
| set_absolute_country_control
| Sets if this character has absolute country control, unlock_character_movement = yes/no/boolean event target
| <pre></pre>
| 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
| <pre>  Usage: set_age = script value</pre>
| character
|
|-
| set_amenity_level
| set_amenity_level = { type = food value = 2 }
| <pre>Sets the amenity type to the given value for the scoped character</pre>
| character
|
|-
| set_beneficiary
| The target character becomes the beneficiary of the scoped character. set_beneficiary = some character
| <pre></pre>
| 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.
| <pre></pre>
| character
| faith
|-
| set_character_faith_history
| Changes what faith a character has NOT executing the effects for it. USE ONLY IN HISOTRY SETUP!
| <pre></pre>
| 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
| <pre></pre>
| character
| faith
|-
| set_child_of_concubine_on_pregnancy
| Sets the child to be (or not be) a child of a concubine during pregnancy
| <pre></pre>
| character
|
|-
| set_council_task
| Sets the task of the scope councillor { task_type = council_position_type_key target = for_targeted_tasks  }
| <pre></pre>
| character
|
|-
| set_court_language
| Set the character's court language to the given languageset_court_language = language_norwegian
| <pre></pre>
| character
|
|-
| set_court_type
| Set the court type for this character's royal court
| <pre></pre>
| character
|
|-
| set_culture
| Set the culture for this character
| <pre></pre>
| character
| culture
|-
| set_culture_same_as
| sets the culture of the character to be the same as the culture of the target
| <pre></pre>
| 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.
| <pre>Does not apply a grace period, and removes any existing one.</pre>
| character
|
|-
| set_death_reason
| set_death_reason = { killer = X death_reason = Y artifact = Z }
| <pre>All parameters are optional. Sets the death reason, the killer, and artifact used in the death of a dead character</pre>
| character
|
|-
| set_default_education
| Set the default education focus for this character
| <pre></pre>
| character
|
|-
| set_designated_heir
| Sets the given character as designated heir
| <pre></pre>
| character
| character
|-
| set_employer
| Add the scope character to the target character's court
| <pre></pre>
| character
| character
|-
| set_father
| sets the father of a character
| <pre></pre>
| character
| character
|-
| set_focus
| Set the focus for this character
| <pre></pre>
| character
|
|-
| set_house
| Sets the dynasty house of the character
| <pre></pre>
| character
| dynasty house
|-
| set_immortal_age
| Changes what age the character became immortal at. Only works if already immortal
| <pre>set_immortal_age = 20</pre>
| character
|
|-
| set_killer_public
| Sets the scoped character's killer as being publicly known
| <pre>set_killer_public = bool</pre>
| character
|
|-
| set_knight_status
| Sets the knight status of the character to Forced/Default/Disallowed
| <pre></pre>
| character
|
|-
| set_known_bastard_on_pregnancy
| Sets the child to a known or unknown bastard during pregnancy
| <pre></pre>
| character
|
|-
| set_mother
| Sets the mother of a character
| <pre></pre>
| character
| character
|-
| set_num_pregnancy_children
| Set the number of children
| <pre></pre>
| 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
| <pre></pre>
| 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
| <pre></pre>
| character
| character
|-
| set_pregnancy_assumed_father
| Set the assumed father of the pregnancy
| <pre></pre>
| character
| character
|-
| set_primary_spouse
| Set the primary spouse of a character
| <pre>set_primary_spouse = scope</pre>
| character
| character
|-
| set_primary_title_to
| Sets the primary title for a character
| <pre>set_primary_title_to = <title></pre>
| character
| landed title
|-
| set_real_father
| Changes the real father of the character scope
| <pre></pre>
| character
| character
|-
| set_realm_capital
| Set a new realm capital
| <pre>character = { set_realm_capital = new_title }</pre>
| character
| landed title
|-
| set_relation_antiquarian
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_best_friend
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_bully
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_court_physician
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_crush
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_friend
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_guardian
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_intrigue_mentor
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_intrigue_student
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_lover
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_mentor
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_nemesis
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_oaf
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_potential_friend
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_potential_lover
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_potential_rival
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_rival
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_soldier_friend
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_soulmate
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_student
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_victim
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_relation_ward
| Sets scripted relationship
| <pre></pre>
| character
| character
|-
| set_sexuality
| Sets the sexuality of the character
| <pre></pre>
| character
|
|-
| set_to_lowborn
| Set the character to lowborn
| <pre></pre>
| character
|
|-
| set_trait_rank
| Sets the trait rank = { trait = trait_group rank = new rank }
| <pre></pre>
| 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'
| <pre></pre>
| 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.
| <pre>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
}</pre>
| character
|
|-
| sponsor_inspiration
| sponsor_inspiration = inspiration
| <pre>Sets the sponsor of the target inspiration to the scoped character</pre>
| 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).
| <pre></pre>
| character
|-
| start_scheme
| starts a scheme  = { type = X target = Y }
| <pre></pre>
| 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.
| <pre>If there are no title targets, the effect will pick one of possible title targets.</pre>
| 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
| <pre>store_localized_text_in_death = key</pre>
| character
|
|-
| stress_impact
| Stress impact according to specified traits (trait = value), use base = value for a base value that's always added
| <pre></pre>
| 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
| <pre></pre>
| character
| character
|-
| unlearn_language
| The character unlearns the language. Cannot unlearn the language of your cultureunlearn_language = language_norwegian
| <pre></pre>
| 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
| <pre></pre>
| character
| culture
|-
| use_hook
| Uses a hook a character has (removes if weak, puts on cooldown if strong), use_hook = some_character
| <pre></pre>
| character
| character
|-
| vassal_contract_decrease_obligation_level
| decrease the obligation level of the scoped character's vassal contract
| <pre></pre>
| character
|
|-
| vassal_contract_increase_obligation_level
| increase the obligation level of the scoped character's vassal contract
| <pre></pre>
| character
|
|-
| vassal_contract_set_obligation_level
| change the obligation level of the scoped character's vassal contract
| <pre>vassal_contract_set_obligation_level = { type = name level = 1 } # index to obligation level
vassal_contract_set_obligation_level = { type = name level = feudal_obligation_low }</pre>
| character
|
|-
| visit_court_of
| Add the scope character as the target character's guest
| <pre></pre>
| character
| character
|-
| every_faith
| Iterate through all faiths within a religion
| <pre>every_faith = { limit = { <triggers> } <effects> }</pre>
| religion
| faith
|-
| ordered_faith
| Iterate through all faiths within a religion
| <pre>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> }</pre>
| religion
| faith
|-
| random_faith
| Iterate through all faiths within a religion
| <pre>random_faith = { limit = { <triggers> } (optional) weight = { mtth } <effects> }</pre>
| religion
| faith
|}
|}
<br>
 
== 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}}
[[en:Effects]]
[[Category:Modding]]
[[Category: 模组制作]]

2022年12月4日 (日) 22:59的最新版本

效果(Effects),也称为命令(commands),在脚本中用于更改通过范围和条件选择的目标。他们还能够遍历列表。

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.

效果条件式[编辑 | 编辑源代码]

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

名称 描述 样例 Supported scopes Supported targets
if 如果满足if条件内容<triggers>,则会执行if描述的效果<effects>
if = { limit = { <triggers> } <effects> }
none
else_if 如果满足if条件内容<triggers>,则会执行if描述的效果<effects> ,否则如果如果满足else_if条件内容<triggers>,则会执行else_if描述的效果<effects>
if = { limit = { <triggers> } <effects> }
else_if = { limit = { <triggers> } <effects> }
none
else 如果满足if条件内容<triggers>,则会执行if描述的效果<effects> ,否则执行else描述的效果<effects>(该段括号内容为译者所加,鉴于ck3官网原文有些模糊,这里引用一下钢4wiki对效果条件式的描述:首先,limit是一个AND的触发器,也就是其中的所有条件都需要满足,如果limit中的内容没有满足,就开始检测else_if,直到else最后这个触发器(除非你没有写)。这其中的每一个触发器只要有一个触发器中的内容全部满足就会触发)
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.