Narrative Query Templates
The narrative_queries
table contains a list of narrative query templates that campaign scripts can use to create narrative queries. See the page on narrative
for an overview of the narrative event framework. See also the narrative_query
documentation for detailed information about the narrative_query
object interface.
Loaded in Campaign | |
Loaded in Battle | |
Loaded in Frontend |
-
narrative_queries.savegame_value_exists(
unique name
string
,
faction key
string
,
trigger message
string
,
positive trigger message
string
,
negative trigger message
[string
],
value key
string
,
additional condition
[function
]
) -
Creates a narrative query that queries a value in the savegame, looked up by the supplied key, and acts upon the result. If the value exists then the positive trigger message(s) are fired, otherwise the negative trigger message(s) are fired, if any were supplied.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Positive trigger message to fire if the saved value exists. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Negative trigger message to fire if the saved value does not exist. This can be a single string or a
table
of strings if multiple messages are desired.6
Key of value to look up from the savegame. This is passed to
campaign_manager:get_saved_value
to retrieve the value.7
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 87
-
narrative_queries.narrative_event_has_triggered(
unique name
string
,
faction key
string
,
trigger message
string
,
positive trigger message
string
,
negative trigger message
[string
],
narrative event name
string
,
pass on all
[boolean
],
additional condition
[function
]
) -
Creates a narrative query that queries whether a narrative event with the supplied name for the supplied faction has triggered in this savegame, and acts upon the result. If the narrative event has triggered then the positive trigger message(s) are fired, otherwise the negative trigger message(s) are fired, if any were supplied.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Positive trigger message to fire if the saved value exists. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Negative trigger message to fire if the saved value does not exist. This can be a single string or a
table
of strings if multiple messages are desired.6
Name of narrative event to query. This may also be a
table
of strings if multiple narrative events are to be queried.7
optional, default value=false
Trigger the positive message if all specified narrative events have fired. If
false
ornil
is supplied here then the positive message will be triggered if any of the specified narrative events have fired.8
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 188
-
narrative_queries.advice_history(
unique name
string
,
faction key
string
,
trigger message
string
,
experienced message
string
,
not experienced message
[string
],
any advice strings
[table
],
all advice strings
[table
],
any advice keys
[table
],
all advice keys
[table
],
additional condition
[function
]
) -
Creates a narrative query that queries the player's advice history against a supplied set of advice strings and advice keys when triggered.
Up to four sets of data can be passed to the function, representing any advice strings, all advice strings, any advice keys and all advice keys. When the narrative query is triggered the data collections are checked in this order. Where they are present, their contents are checked and the advice-experienced message may be triggered.
If all four collections are checked and the advice-experienced message has not been triggered, then the advice-not-experienced message is triggered (if one has been supplied).
If triggered in multiplayer mode the narrative query always behaves as if the advice has been experienced, as the advice history will be different on different machines in a multiplayer game so it would not be safe to do otherwise.Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the player has experienced the supplied advice. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the player has not experienced the supplied advice. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Any advice strings table. When triggered, the narrative trigger will check the history of advice strings supplied in this table using the function
common.get_advice_history_string_seen
. If any advice strings in this table have been experienced by the local player then the advice-experienced message is triggered.7
optional, default value=nil
All advice strings table. When triggered, the narrative trigger will check the history of all advice keys supplied in this table using the function
common.get_advice_history_string_seen
. If all advice strings in this table have been experienced by the local player then the advice-experienced message is triggered.8
optional, default value=nil
Any advice keys table. When triggered, the narrative trigger will check the history of advice keys supplied in this table using the function
common.get_advice_thread_score
. If any advice items represented by keys in this table have been experienced by the local player then the advice-experienced message is triggered.9
optional, default value=nil
All advice keys table. When triggered, the narrative trigger will check the history of all advice keys supplied in this table using the function
common.get_advice_thread_score
. If all advice items represented by keys in this table have been experienced by the local player then the advice-experienced message is triggered.10
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 328
-
narrative_queries.advice_history_for_narrative_chain(
unique name
string
,
faction key
string
,
trigger message
string
,
experienced message
string
,
not experienced message
[string
],
all advice strings
[table
],
additional condition
[function
]
) -
Creates a narrative query that interrogates the player's advice history for a narrative chain. If all of the supplied set of advice keys or any of the supplied set of advice strings are in the advice history, or it's a multiplayer game, or the campaign difficulty is very hard or above, then the positive target message(s) are triggered. Otherwise, the negative target message(s) are triggered, if any have been supplied.
If triggered in multiplayer mode the narrative query always behaves as if the advice has been experienced, as the advice history will be different on different machines in a multiplayer game so it would not be safe to do otherwise.Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Target message to trigger if the player has experienced the supplied advice. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Target message to trigger if the player has not experienced the supplied advice. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
All advice strings table. When triggered, the narrative trigger will check the history of advice strings supplied in this table using the function
common.get_advice_history_string_seen
. If all advice strings in this table have been experienced by the local player then the advice-experienced message is triggered.7
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 356
-
narrative_queries.is_faction_army_closer_than_settlement_to_faction(
unique name
string
,
faction key
string
,
target faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
]
) -
Creates a narrative query that queries the distance between a specified faction's armies and settlements and another faction and acts upon the result. Should the target faction have an army closer than a settlement to the supplied faction's leader the positive message(s) are fired. Otherwise, the negative message(s) are fired, if any were supplied.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Key of the target faction to which this narrative query applies, from the
factions
database table.4
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.5
Message to trigger if the faction is one settlement from completing a province. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Message to trigger if the faction is not one settlement from completing a province. This can be a single string or a
table
of strings if multiple messages are desired.Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 473
-
narrative_queries.one_settlement_from_completing_province(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
additional condition
[function
]
) -
Creates a narrative query that queries the specified faction's territorial holdings and acts upon the result. Should the faction be exactly one settlement away from complete control of any province the positive message(s) are fired. Otherwise, the negative message(s) are fired, if any were supplied.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction is one settlement from completing a province. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction is not one settlement from completing a province. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 569
-
narrative_queries.controls_x_provinces(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
provinces
number
,
additional condition
[function
]
) -
Creates a narrative query that queries the specified faction's territorial holdings and acts upon the result. Should the faction already fully control at least the supplied number of provinces then the positive message(s) are fired. Otherwise, the negative message(s) are fired, if any were supplied.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction is one settlement from completing a province. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction is not one settlement from completing a province. This can be a single string or a
table
of strings if multiple messages are desired.6
Number of provinces the faction has to fully control for the positive message to be forced.
7
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 658
-
narrative_queries.highest_level_settlement_for_faction(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
query level
number
,
additional condition
[function
]
) -
Creates a narrative query that queries the specified faction's highest-level settlement and acts on the result. Should the level of the highest-level settlement be equal to or greater than the supplied query level then the positive message(s) are fired. Otherwise, the negative message(s) are fired, if any were supplied.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction has a settlement at or above the query level. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction does not have a settlement at or above the query level. This can be a single string or a
table
of strings if multiple messages are desired.6
Minimum level the highest-level settlement of the faction must be in order to trigger the positive result message(s).
7
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 752
-
narrative_queries.is_researching(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction is currently researching a technology and acts on the result.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction is currently researching a technology. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction is not currently researching a technology. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 827
-
narrative_queries.has_available_technologies(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction currently has technologies available for research and acts on the result.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction has technologies available. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction does not have technologies available. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 898
-
narrative_queries.has_income(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
income
number
,
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction currently has an income level above the specified amount and acts on the result.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction has the required income. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction does not have the required income. This can be a single string or a
table
of strings if multiple messages are desired.6
Income amount.
7
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 973
-
narrative_queries.can_capture_territory(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction can capture territory, and acts on the result. If the faction cannot capture territory they are presumably a horde faction. If the faction can capture territory then the positive trigger message(s) are fired, otherwise the negative trigger message(s) are fired.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can capture territory. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot capture territory. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 1047
-
narrative_queries.can_recruit_any_hero(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction can recruit any hero and acts on the result. If the faction can recruit a hero then the positive trigger message(s) are fired, otherwise the negative trigger message(s) are fired.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can recruit a hero. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot recruit a hero. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 1127
-
narrative_queries.can_recruit_hero_of_type(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
hero types
[table
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction can recruit a hero of the supplied list of types, and acts on the result. If the faction can recruit a hero then the positive trigger message(s) are fired, otherwise the negative trigger message(s) are fired.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can recruit a hero. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot recruit a hero. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Indexed table of string hero types. If no table is supplied then all hero types are matched.
7
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 1145
-
narrative_queries.can_trade(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction can make a trade agreement (they are part of the "factions_without_trade" faction set), and acts on the result. If the faction can trade then the positive trigger message(s) are fired, otherwise the negative trigger message(s) are fired.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can capture territory. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot capture territory. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 1220
-
narrative_queries.contains_any_hero(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction contains any hero, and acts on the result. If the faction contains any heroes then the positive trigger message(s) are fired, otherwise the negative trigger message(s) are fired.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can recruit a hero. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot recruit a hero. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 1298
-
narrative_queries.contains_any_hero_of_type(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
hero types
[table
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction contains heroes of the specified type(s), and acts on the result. If the faction contains any matching heroes then the positive trigger message(s) are fired, otherwise the negative trigger message(s) are fired.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can recruit a hero. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot recruit a hero. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Indexed table of string character types to test against. If the specified faction contains any heroes matching any of the supplied types then a positive result is returned.
7
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 1316
-
narrative_queries.corruption_in_adjacent_region(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
corruption key
[string
],
culture key
[string
],
corruption type
string
,
threshold value
number
,
additional condition
[function
]
) -
Creates a narrative query that queries whether any regions adjacent to the specified faction contain corruption of the specified type equal to or above the supplied threshold, and acts on the result. If any adjacent region meets the corruption threshold then the positive trigger message(s) are fired, otherwise the negative trigger message(s) are fired.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can recruit a hero. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot recruit a hero. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Message to trigger if the faction cannot recruit a hero. This can be a single string or a
table
of strings if multiple messages are desired.7
optional, default value=nil
Culture key of region owner to exclude. If an eligible region has a faction owner with this culture, the region will not be included.
8
Corruption type, from the
pooled_resources
database table.9
Threshold value which the corruption must meet or exceed in an adjacent region for the query to pass.
10
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 1419
-
narrative_queries.has_concocted_plagues(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
plagues
[number
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction has concocted a threshold number of Nurgle plagues, and acts on the result.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can capture territory. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot capture territory. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=1
THreshold number of plagues.
7
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 1495
-
narrative_queries.has_non_aggression_pact(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
target faction
[string
],
target culture
[string
],
target subculture
[string
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction has a non-aggression pact. Zero or more faction keys, faction culture keys or faction subculture keys may be specified. Should the subject faction have a non-aggression pact with any of the specified factions/cultures/subcultures, or should they have a non-aggression pact with any faction if no filters are specified, then the query will return a positive result.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can capture territory. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot capture territory. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Faction key of a target faction which the subject should have an agreement with, from the
factions
database table. Atable
of string faction keys may be specified if more than one target faction is desired. In this case, the query passes if an agreement exists with any of the target factions in the list.7
optional, default value=nil
Culture key of a target faction which the subject should have an agreement with, from the
cultures
database table. Atable
of string culture keys may be specified if more than one target culture is desired. In this case, the query passes if an agreement exists with a faction of any of the target cultures in the list.8
optional, default value=nil
Subculture key of a target faction which the subject should have an agreement with, from the
cultures_subcultures
database table. Atable
of string subculture keys may be specified if more than one target subculture is desired. In this case, the query passes if an agreement exists with a faction of any of the target subcultures in the list.9
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 1664
-
narrative_queries.has_trade_agreement(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
target faction
[string
],
target culture
[string
],
target subculture
[string
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction has a trade agreement. Zero or more faction keys, faction culture keys or faction subculture keys may be specified. Should the subject faction have a trade agreement with any of the specified factions/cultures/subcultures, or should they have a trade agreement with any faction if no filters are specified, then the query will return a positive result.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can capture territory. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot capture territory. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Faction key of a target faction which the subject should have an agreement with, from the
factions
database table. Atable
of string faction keys may be specified if more than one target faction is desired. In this case, the query passes if an agreement exists with any of the target factions in the list.7
optional, default value=nil
Culture key of a target faction which the subject should have an agreement with, from the
cultures
database table. Atable
of string culture keys may be specified if more than one target culture is desired. In this case, the query passes if an agreement exists with a faction of any of the target cultures in the list.8
optional, default value=nil
Subculture key of a target faction which the subject should have an agreement with, from the
cultures_subcultures
database table. Atable
of string subculture keys may be specified if more than one target subculture is desired. In this case, the query passes if an agreement exists with a faction of any of the target subcultures in the list.9
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 1773
-
narrative_queries.has_defensive_alliance(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
target faction
[string
],
target culture
[string
],
target subculture
[string
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction has a defensive alliance. Zero or more faction keys, faction culture keys or faction subculture keys may be specified. Should the subject faction have a defensive alliance with any of the specified factions/cultures/subcultures, or should they have a defensive alliance with any faction if no filters are specified, then the query will return a positive result.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can capture territory. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot capture territory. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Faction key of a target faction which the subject should have an agreement with, from the
factions
database table. Atable
of string faction keys may be specified if more than one target faction is desired. In this case, the query passes if an agreement exists with any of the target factions in the list.7
optional, default value=nil
Culture key of a target faction which the subject should have an agreement with, from the
cultures
database table. Atable
of string culture keys may be specified if more than one target culture is desired. In this case, the query passes if an agreement exists with a faction of any of the target cultures in the list.8
optional, default value=nil
Subculture key of a target faction which the subject should have an agreement with, from the
cultures_subcultures
database table. Atable
of string subculture keys may be specified if more than one target subculture is desired. In this case, the query passes if an agreement exists with a faction of any of the target subcultures in the list.9
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 1882
-
narrative_queries.has_military_alliance(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
target faction
[string
],
target culture
[string
],
target subculture
[string
],
additional condition
[function
]
) -
Creates a narrative query that queries whether the specified faction has a military alliance. Zero or more faction keys, faction culture keys or faction subculture keys may be specified. Should the subject faction have a military alliance with any of the specified factions/cultures/subcultures, or should they have a military alliance with any faction if no filters are specified, then the query will return a positive result.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can capture territory. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot capture territory. This can be a single string or a
table
of strings if multiple messages are desired.6
optional, default value=nil
Faction key of a target faction which the subject should have an agreement with, from the
factions
database table. Atable
of string faction keys may be specified if more than one target faction is desired. In this case, the query passes if an agreement exists with any of the target factions in the list.7
optional, default value=nil
Culture key of a target faction which the subject should have an agreement with, from the
cultures
database table. Atable
of string culture keys may be specified if more than one target culture is desired. In this case, the query passes if an agreement exists with a faction of any of the target cultures in the list.8
optional, default value=nil
Subculture key of a target faction which the subject should have an agreement with, from the
cultures_subcultures
database table. Atable
of string subculture keys may be specified if more than one target subculture is desired. In this case, the query passes if an agreement exists with a faction of any of the target subcultures in the list.9
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 1991
-
narrative_queries.has_pooled_resource(
unique name
string
,
faction key
string
,
trigger message
string
,
positive message
string
,
negative message
[string
],
pooled resource key
string
,
threshold value
number
,
additional condition
[function
]
) -
Creates a narrative query that queries whether the value of one or more pooled resources for a specified faction is equal to or greater than a specified value. If more than one pooled resource is specified, then the query triggers its positive message if any of the pooled resources meet or exceed the threshold.
Parameters:
1
Unique name amongst other declared narrative queries.
2
Key of the faction to which this narrative query applies, from the
factions
database table.3
Message on which this narrative query should trigger. If multiple trigger messages are required a
table
containing string message names can be supplied here instead.4
Message to trigger if the faction can capture territory. This can be a single string or a
table
of strings if multiple messages are desired.5
optional, default value=nil
Message to trigger if the faction cannot capture territory. This can be a single string or a
table
of strings if multiple messages are desired.6
Pooled resource key, from the
pooled resources
database table. If more than one pooled resource is to be queried then atable
of strings may be specified here.7
Threshold value, which the pooled resource should meet or exceed for the positive message to be triggered.
8
optional, default value=nil
Additional condition function which can force a positive or negative result. If supplied, the function is called with the context and narrative query objects passed in as separate functions. If it returns
true
then a positive result is forced, iffalse
then a negative result is forced. If it returns any other value then no result is forced.The condition function may also return a string as a second return value, which will be used for output.
Returns:
nil
defined in ../../warhammer/working_data/script/campaign/_narrative/wh3_narrative_query_templates.lua, line 2094