• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

OldEnt

Captain
45 Badges
Aug 12, 2019
475
569
  • Magicka
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Synthetic Dawn
  • Europa Universalis IV: Golden Century
  • Europa Universalis IV: Mandate of Heaven
  • Hearts of Iron IV: Death or Dishonor
  • Europa Universalis IV: Cradle of Civilization
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Europa Universalis IV: Rule Britannia
  • Stellaris: Distant Stars
  • Europa Universalis IV: Dharma
  • Hearts of Iron IV: Together for Victory
  • Stellaris: Ancient Relics
  • Stellaris: Lithoids
  • Hearts of Iron IV: La Resistance
  • Stellaris: Federations
  • Crusader Kings III
  • Stellaris: Necroids
  • Stellaris: Nemesis
  • Europa Universalis IV: Cossacks
  • Europa Universalis IV
  • Cities: Skylines
  • Europa Universalis IV: El Dorado
  • Europa Universalis IV: Common Sense
  • Stellaris: Leviathans Story Pack
  • Europa Universalis IV: Mare Nostrum
  • Stellaris
  • Stellaris: Galaxy Edition
  • Stellaris: Galaxy Edition
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Colonel
  • Europa Universalis IV: Rights of Man
  • Stellaris: Digital Anniversary Edition
  • Europa Universalis IV: Third Rome
  • Stellaris: Megacorp
  • Europa Universalis IV: Pre-order
  • Stellaris - Path to Destruction bundle
  • Europa Universalis IV: Res Publica
  • Europa Universalis IV: Call to arms event
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Art of War
  • Crusader Kings II
This is a detailed rundown of changes to triggers, effects, modifiers etc. which come with Stellaris 4.0 Phoenix update.

Also see: Lem moddability changes: new triggers, effects and improvements and Nemesis moddability changes: over 100 new triggers and effects each.

Source view of changes is available as a GitHub diff page. Green is added, red is removed. Any red check if it does not exist elsewhere as green as it might have been just moved during formatting).

List of Stellaris triggers, modifiers and effects for most game versions since launch (live branch)

If you are interested in mod making be sure to visit Stellaris Modding Den Discord and Stellaris Wiki modding page.
 
Last edited:
  • 3
  • 1Like
Reactions:
Removed effects:
Code:
remove_last_built_building
reset_decline
create_half_species
random_pop
every_owned_pop
every_galaxy_pop
random_owned_pop
remove_last_built_district
ordered_owned_pop
random_species_pop
ordered_species_pop
every_species_pop
kill_pop

Removed localizations:
none

Removed scopes:
Code:
pop - Scopes from an army to the pop that spawned it.
Supported Scopes: pop army
Output Scope: pop

Removed triggers:
Code:
pop_has_trait
num_sapient_pops
has_unemployed_pop_of_category
has_job
num_pops
any_pop
has_level
count_pops
is_enslaved
is_being_purged
local_human_species_class
local_human_origin
trade_income
is_pop
has_system_trade_value
has_collected_system_trade_value
has_uncollected_system_trade_value
any_owned_pop
count_owned_pops
has_skill
has_colony_progress
is_unemployed
can_work_job
pop_percentage
species_planet_slave_percentage
pop_produces_resource
has_trade_route
trade_route_value
trade_intercepted_percentage
trade_intercepted_value
trade_protected_value
trade_protected_percentage
num_trade_routes
uses_building_set
xeno_compatibility_enabled
num_organic_pops_per_year
num_artificial_pops_per_year
trading_value
count_owned_pop
any_species_pop
count_species_pop

Removed modifiers:
Please see GitHub diff page or attached htm file.
 

Attachments

  • diff modifiers 3.14.15 to 4.0.2.htm.7z
    214,3 KB · Views: 0
Last edited:
  • 1Like
Reactions:
Added effects:

Code:
remove_random_building - Removes last built building from the scoped planet
remove_random_building = yes
Supported Scopes: planet

create_pop_group - Creates a new pop group based on an existing one with overrides. If no existing pop group is passed, species is mandatory.
create_pop_group = {
    pop_group = <base pop group> (optional; if omitted, species is required)
    species = last_created / <key> / <target> / random (optional; if omitted, base pop group is required)
    ethos = { ethic = <key> } / random (optional; if no base group and no ethic is provided, ethos will be randomized)
    category = <pop category> (optional; if omitted and no base group is defined, use category from first assigned job)
    size = <number> (optional, default: POP_BULK_UNIT_SIZE)
    effect = <init effect> (optional)
}
Supported Scopes: planet

kill_pop_group - Instantly destroys part of a pop group
kill_pop_group = { pop_group = <target pop group> amount = <amount killed> OR percentage = <percentage killed> }
Supported Scopes: all


set_pop_group_flag - Sets an arbitrarily-named flag on the scoped pop group
set_pop_group_flag = <key> (note: one can use e.g. my_flag@from to track relationships between objects)
Supported Scopes: pop group

remove_pop_group_flag - Removes a flag from the scoped pop group
remove_pop_group_flag = <key> (note: one can use e.g. my_flag@from to track relationships between objects)
Supported Scopes: pop group

damage_army - Damages scoped army by a specific amount
damage_army = 250
Supported Scopes: army
add_zone - Adds zone to the district of the planet
    add_zone = {
        district = <district_type_key/district_slot_index>
        zone = <zone_type_key>
        zone_slot = <zone_slot_index>
        replace = <yes/no>
    }
Supported Scopes: planet

set_timed_pop_group_flag - Sets an arbitrarily-named flag on the scoped pop group for a set duration
set_timed_pop_group_flag = {
    flag = <key> (note: one can use <key>@scope e.g. my_flag@from to track relationships between objects)
    days/months/years = <int>/<variable>
}
Supported Scopes: pop group

remove_random_district - Removes a random district from the scoped planet. Bigger district is more likely to be removed.
remove_random_district = yes
Supported Scopes: planet
integrate_species - Triggers the sub-species integration step for a country.
integrate_species = yes
Supported Scopes: country

repair_shield_percentage - Restores a certain percentage of shield points to the scoped ship or fleet
repair_shield_percentage = 0.1
Supported Scopes: ship fleet

repair_amount - Restores a certain amount of hull points to the scoped ship or fleet
repair_amount = 10.0
Supported Scopes: ship fleet

repair_armor_amount - Restores a certain amount of armor points to the scoped ship or fleet
repair_armor_amount = 10.0
Supported Scopes: ship fleet

repair_shield_amount - Restores a certain amount of shield points to the scoped ship or fleet
repair_shield_amount = 10.0
Supported Scopes: ship fleet

set_faction_needs_colony - Sets if a country needs a colony (or a colony ship) to be considered alive
set_faction_needs_colony = yes
Supported Scopes: country

set_faction_auto_delete - Sets if country will be automatically deleted when considered dead
set_faction_auto_delete = yes
Supported Scopes: country

copy_traditions_from - Copies the traditions of the target country into the scoped country. Traditions are added to the existing traditions, and the potential/possible triggers are respected.the traditions listed in the exceptions list are not copied.
copy_traditions_from = {
    target = FROM
    exceptions = { tradition1 tradition2 }
}
Supported Scopes: country

copy_ascension_perks_from - Copies the Ascension Perks of the target country into the scoped country. Perks are added to the existing perks, and the potential/possible triggers are respected.the perkss listed in the exceptions list are not copied.
copy_ascension_perks_from = {
    target = FROM
    exceptions = { perk1 perk2 }
}
Supported Scopes: country
remove_tradition - Remove the target tradition from the scoped Country.
remove_tradition = tradition_key
Supported Scopes: planet country ship pop pop group

remove_tradition_tree - Remove the target tradition tree from the scoped Country.
remove_tradition_tree = tradition_category_key
Supported Scopes: planet country ship pop pop group

add_ascension_perk - Adds the specified ascension perk to the scoped country.
add_ascension_perk = ascension_perk_key
Supported Scopes: country

remove_ascension_perk - Remove the target ascension perk from the scoped Country.
remove_ascension_perk = ascension_perk_key
Supported Scopes: planet country ship pop pop group

add_focus_progress - Adds the defined amount of focus progress in the defined focus category
add_focus_progress = { category = <focus_category_key> amount = <float>/<variable> }
Supported Scopes: country

add_pop_amount - Adds the amount of pops to the scope pop group.
add_pop_amount = <num>
Supported Scopes: pop group

remove_pop_amount - Removes the amount of pops from the scope pop group.
remove_pop_amount = <num>
Supported Scopes: pop group

scale_pop_amount - Scales the amount of pops in the scope pop group
scale_pop_amount = <value>
Supported Scopes: pop group

transfer_pop_amount - Transfer the amount OR percentage of pops from the source pop group to the target pop group
transfer_pop_amount = {
    source = <source pop group>
    target = <target pop group>
    amount = <amount> OR percentage = <percentage>
}
Supported Scopes: all

set_habitability_trait - Set planet preference trait for scoped species (removing the current one, if any).
set_habitability_trait = { trait = <trait> }
Supported Scopes: species
set_confused - Sets the confusion state on the target ship/fleet (all ships). Clears at the end of combat.
set_confused = yes/no
Supported Scopes: ship fleet

add_growth - Adds a specific amount of growth (non-fauna ships)
add_growth = 120
Supported Scopes: ship fleet

reset_growth - Resets growth to zero (non-fauna ships)
reset_growth = {}
Supported Scopes: ship fleet

remove_zone - Removes a zone from the district of the planet
    remove_zone = {
        district = <district_type_key/district_slot_index>
        zone = <zone_type_key>
        zone_slot = <zone_slot_index>
        all = <yes/no>
    }
Supported Scopes: planet

kill_assigned_pop_amount - Instantly destroys part of the assigned pops to this job
kill_assigned_pop_amount = {
    limit = { <triggers> }
    amount = <amount killed> OR percentage = <percentage killed>
}
Supported Scopes: pop job
pop_group_event - Fires a pop group event for the scoped pop group, with optional DAYS and RANDOM delay
pop_group_event = {
    id = <id>
    days = x (optional: specify delay)
    random = y (optional: specify random delay from 0 to value, which is added on to the 'days' delay)
    scopes = { from = fromfrom } (optional: specify scope overrides)
}
Supported Scopes: pop group

add_terraformation_total_time_mult - Adds a percentage to the total time of the current terraforminog process on the planet
terraformation_total_time_mult = <value>
Supported Scopes: planet

add_timeline_event - Adds a new timeline event for the scope country.
add_timeline_event = {
  type = timeline_event_planet
  date = 2300.1.1 (optional - if not present, current date is used)
  targets = { ... } (optional - array of event targets. This depends on localization and what event targets the type requires)

  (There is also overrides that can be used to override settings on the database entries. The Id is required, and the others are optional)
  override_id = my_defined_unique_id
  override_text = { "button:MY_OTHER_LOC_STRING" "button2:ANOTHER_LOC_OVERRIDE" }  override_texture = { "button:GFX_short_button button2:GFX_otherbutton" }  override_tooltip, "loc_tooltip"  override_tooltip_delayed, "loc_delayed_tooltip"}
Supported Scopes: country

weighted_random_owned_pop_group - Weighted random on owned popgroups based on the popgroup size. Supports the same scopes as the owned_pop_group script list
Supported Scopes: planet country pop_faction sector

set_trade_conversions - Sets the trade conversions for the scoped Country. If they do not add up to 1.0 any remaining trade the country keeps as income
set_trade_conversion = { energy = 0.5 minerals = 0.2 }
Supported Scopes: country
random_bypass_in_system - Iterate through every bypass in the scoped galactic object. - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object randomly.
random_bypass_in_system = {
    limit = { <triggers> }
    weights = { (optional - adds weights to affect the chance a specific object is selected)
        base = float
        modifier = { <add/factor = float> <triggers> }
    }
    <effects>
}
Supported Scopes: galactic_object

ordered_bypass_in_system - Iterate through every bypass in the scoped galactic object. - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object according to the order specified (position 0, order_by = trigger:num_pops would run the effects on the X with the most pops)
ordered_bypass_in_system = {
    limit = { <triggers> }
    position = <integer, starting with 0>
    order_by = <variable>/trigger:<trigger>
    inverse = yes/no (default: no - if yes, then 0 is lowest rather than highest)
    <effects>
}
Supported Scopes: galactic_object

every_bypass_in_system - Iterate through every bypass in the scoped galactic object. - executes the enclosed effects on all of them for which the limit triggers return true
every_bypass_in_system = { limit = { <triggers> } <effects> }
Supported Scopes: galactic_object
random_owned_pop_group - Iterate through all owned pop groups - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object randomly.
random_owned_pop_group = {
    lim
}it = { <triggers> }
    weights = { (optional - adds weights to affect the chance a specific object is selected)
        base = float
        modifier = { <add/factor = float> <triggers> }
    }
    <effects>
Supported Scopes: planet country pop_faction sector

ordered_owned_pop_group - Iterate through all owned pop groups - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object according to the order specified (position 0, order_by = trigger:num_pops would run the effects on the X with the most pops)
ordered_owned_pop_group = {
    limit = { <triggers> }
    position = <integer, starting with 0>
    order_by = <variable>/trigger:<trigger>
    inverse = yes/no (default: no - if yes, then 0 is lowest rather than highest)
    <effects>
}
Supported Scopes: planet country pop_faction sector

every_owned_pop_group - Iterate through all owned pop groups - executes the enclosed effects on all of them for which the limit triggers return true
every_owned_pop_group = { limit = { <triggers> } <effects> }
Supported Scopes: planet country pop_faction sector

random_species_pop_group - Iterate through each pop group that belongs to this species; warning: resource-intensive! - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object randomly.
random_species_pop_group = {
    limit = { <triggers> }
    weights = { (optional - adds weights to affect the chance a specific object is selected)
        base = float
        modifier = { <add/factor = float> <triggers> }
    }
    <effects>
}
Supported Scopes: species
ordered_species_pop_group - Iterate through each pop group that belongs to this species; warning: resource-intensive! - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object according to the order specified (position 0, order_by = trigger:num_pops would run the effects on the X with the most pops)
ordered_species_pop_group = {
    limit = { <triggers> }
    position = <integer, starting with 0>
    order_by = <variable>/trigger:<trigger>
    inverse = yes/no (default: no - if yes, then 0 is lowest rather than highest)
    <effects>
}
Supported Scopes: species

every_species_pop_group - Iterate through each pop group that belongs to this species; warning: resource-intensive! - executes the enclosed effects on all of them for which the limit triggers return true
every_species_pop_group = { limit = { <triggers> } <effects> }
Supported Scopes: species

random_owned_pop_job - Iterate through all owned pop jobs - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object randomly.
random_owned_pop_job = {
    limit = { <triggers> }
    weights = { (optional - adds weights to affect the chance a specific object is selected)
        base = float
        modifier = { <add/factor = float> <triggers> }
    }
    <effects>
}
Supported Scopes: planet country sector

ordered_owned_pop_job - Iterate through all owned pop jobs - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object according to the order specified (position 0, order_by = trigger:num_pops would run the effects on the X with the most pops)
ordered_owned_pop_job = {
    limit = { <triggers> }
    position = <integer, starting with 0>
    order_by = <variable>/trigger:<trigger>
    inverse = yes/no (default: no - if yes, then 0 is lowest rather than highest)
    <effects>
}
Supported Scopes: planet country sector

every_owned_pop_job - Iterate through all owned pop jobs - executes the enclosed effects on all of them for which the limit triggers return true
every_owned_pop_job = { limit = { <triggers> } <effects> }
Supported Scopes: planet country sector
random_existing_species_traits - Iterate through all existing species traits in the game - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object randomly.
random_existing_species_traits = {
    limit = { <triggers> }
    weights = { (optional - adds weights to affect the chance a specific object is selected)
        base = float
        modifier = { <add/factor = float> <triggers> }
    }
    <effects>
}
Supported Scopes: no_scope

ordered_existing_species_traits - Iterate through all existing species traits in the game - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object according to the order specified (position 0, order_by = trigger:num_pops would run the effects on the X with the most pops)
ordered_existing_species_traits = {
    limit = { <triggers> }
    position = <integer, starting with 0>
    order_by = <variable>/trigger:<trigger>
    inverse = yes/no (default: no - if yes, then 0 is lowest rather than highest)
    <effects>
}
Supported Scopes: no_scope

every_existing_species_traits - Iterate through all existing species traits in the game - executes the enclosed effects on all of them for which the limit triggers return true
every_existing_species_traits = { limit = { <triggers> } <effects> }
Supported Scopes: no_scope

random_trait_of_species - Iterate through each trait that the scoped species has
trait_of_species = { trait_has_all_tags = { positive } } - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object randomly.
random_trait_of_species = {
    limit = { <triggers> }
    weights = { (optional - adds weights to affect the chance a specific object is selected)
        base = float
        modifier = { <add/factor = float> <triggers> }
    }
    <effects>
}
Supported Scopes: pop pop group leader species
ordered_trait_of_species - Iterate through each trait that the scoped species has
trait_of_species = { trait_has_all_tags = { positive } } - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object according to the order specified (position 0, order_by = trigger:num_pops would run the effects on the X with the most pops)
ordered_trait_of_species = {
    limit = { <triggers> }
    position = <integer, starting with 0>
    order_by = <variable>/trigger:<trigger>
    inverse = yes/no (default: no - if yes, then 0 is lowest rather than highest)
    <effects>
}
Supported Scopes: pop pop group leader species

every_trait_of_species - Iterate through each trait that the scoped species has
trait_of_species = { trait_has_all_tags = { positive } } - executes the enclosed effects on all of them for which the limit triggers return true
every_trait_of_species = { limit = { <triggers> } <effects> }
Supported Scopes: pop pop group leader species

random_trait_available_for_species - Iterate through all species traits and check if scope species doesn't have this trait
traits_available_for_species = { trait_has_all_tags = { organic positive } } - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object randomly.
random_trait_available_for_species = {
    limit = { <triggers> }
    weights = { (optional - adds weights to affect the chance a specific object is selected)
        base = float
        modifier = { <add/factor = float> <triggers> }
    }
    <effects>
}
Supported Scopes: pop pop group leader species
ordered_trait_available_for_species - Iterate through all species traits and check if scope species doesn't have this trait
traits_available_for_species = { trait_has_all_tags = { organic positive } } - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object according to the order specified (position 0, order_by = trigger:num_pops would run the effects on the X with the most pops)
ordered_trait_available_for_species = {
    limit = { <triggers> }
    position = <integer, starting with 0>
    order_by = <variable>/trigger:<trigger>
    inverse = yes/no (default: no - if yes, then 0 is lowest rather than highest)
    <effects>
}
Supported Scopes: pop pop group leader species

every_trait_available_for_species - Iterate through all species traits and check if scope species doesn't have this trait
traits_available_for_species = { trait_has_all_tags = { organic positive } } - executes the enclosed effects on all of them for which the limit triggers return true
every_trait_available_for_species = { limit = { <triggers> } <effects> }
Supported Scopes: pop pop group leader species
random_starbase_in_system - Iterate through every starbase in the scoped galactic object. - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object randomly.
random_starbase_in_system = {
    limit = { <triggers> }
    weights = { (optional - adds weights to affect the chance a specific object is selected)
        base = float
        modifier = { <add/factor = float> <triggers> }
    }
    <effects>
}
Supported Scopes: galactic_object

ordered_starbase_in_system - Iterate through every starbase in the scoped galactic object. - executes the enclosed effects on one of them for which the limit triggers return true. Picks the specific object according to the order specified (position 0, order_by = trigger:num_pops would run the effects on the X with the most pops)
ordered_starbase_in_system = {
    limit = { <triggers> }
    position = <integer, starting with 0>
    order_by = <variable>/trigger:<trigger>
    inverse = yes/no (default: no - if yes, then 0 is lowest rather than highest)
    <effects>
}
Supported Scopes: galactic_object

every_starbase_in_system - Iterate through every starbase in the scoped galactic object. - executes the enclosed effects on all of them for which the limit triggers return true
every_starbase_in_system = { limit = { <triggers> } <effects> }
Supported Scopes: galactic_object
 
Last edited:
Added localizations:
Code:
Country (Properties):

GetCapitalPlanetNameOrRandom
GetCapitalSystemNameOrRandomPersistent
GetCapitalPlanetNameOrRandomPersistent

Code:
--Pop Group--
Promotions:
 Planet
 Faction
 Species
Properties
 GetName
 GetSpeciesName
 GetSpeciesNamePersistent
 GetSpeciesNamePlural
 GetSpeciesAdj
--Timeline Event--
Promotions:
 EVENT_TARGET_0
 EVENT_TARGET_1
 EVENT_TARGET_2
 EVENT_TARGET_3
 EVENT_TARGET_4
 EVENT_TARGET_5
 EVENT_TARGET_6
 EVENT_TARGET_7
 EVENT_TARGET_8
 EVENT_TARGET_9
Properties
 GetDate
 GetYear

--Dead Arc Site--
Promotions:
Properties
 GetName

--Dead Astral Rift--
Promotions:
Properties
 GetName

--Dead Cosmic Storm--
Promotions:
Properties
 GetName
 GetType

--Dead Country--
Promotions:
Properties
 GetName

--Dead Federation--
Promotions:
Properties
 GetName

--Dead Fleet--
Promotions:
Properties
 GetName

--Dead Leader--
Promotions:
Properties
 GetName

--Dead Megastructure--
Promotions:
 System
Properties
 GetName

--Dead Planet--
Promotions:
Properties
 GetName

--Dead Ship--
Promotions:
Properties
 GetName

--Dead Situation--
Promotions:
 Target
 Owner
Properties
 GetName

--Dead War--
Promotions:
 MainAttacker
 MainDefender
Properties
 GetName
 
Last edited:
Added scopes:
Code:
spawner_planet - Scopes from an army to the planet that spawned it.
Supported Scopes: army
Output Scope: planet

ship_growth_stage - Scopes to the ship's current growth stage inside the ship's design
Supported Scopes: ship
Output Scope: ship_growth_stage
 
Last edited:
Added triggers:
Code:
pop_group_has_ethic - Checks if the pop group has a specific ethos
pop_group_has_ethic = ethic_fanatic_xenophile
Supported Scopes: pop group

pop_group_has_trait - Checks if the pop group has a specific trait
pop_group_has_trait = trait_decadent
Supported Scopes: pop group
city_graphical_culture - Checks if the country has a specific graphical culture for its city image or the same graphical culture as the target.
If the target is a country, this trigger will compare its city graphical culture to the scoped country city graphical culture
city_graphical_culture = <fungoid_01/FROM>
Supported Scopes: country

is_robot_pop_group - Checks if the pop group is a robot
is_robot_pop_group = yes
Supported Scopes: pop group

inner_radius - Checks the inner radius of a solar system
inner_radius > 300
Supported Scopes: galactic_object

has_picked_auto_mod_habitability - Checks if a pop has already picked an auto modded habitability trait.
has_picked_auto_mod_habitability = <yes/no>
Supported Scopes: pop group

has_highest_technology_score - Checks if the country has the highest technology score
has_highest_technology_score = yes/no
Supported Scopes: country

is_growth_complete - Checks if the ship growth progress has maxed out.
is_growth_complete = yes / no
Supported Scopes: ship
has_job_type - Checks if the job has a specific type set.
has_job_type = <key>
Supported Scopes: pop job

has_pop_group_flag - Checks if the pop group has a specific flag
has_pop_group_flag = <flag> (note: one can use e.g. my_flag@from to track relationships between objects)
Supported Scopes: pop group

colony_age_years - Checks the planet's (colony's) age in years
colony_age_years > 12
Supported Scopes: planet

custom_progress - Adjusts progress of triggers inside it
custom_progress = {
    ...
    current_val_coeff = 0.5
    final_val_coeff = 0.5
    mode = <normal/simplified/clamped>
}
Supported Scopes: all

hidden_progress - Nullifies progress of triggers inside it and returns progress '0 of 0'
hidden_progress = {
    <triggers>
}
Supported Scopes: all

simple_progress - Hides the progress of the triggers inside and returns progresses '0 of 1' or '1 of 1'
simple_progress = {
    <triggers>
}
Supported Scopes: all
has_base_skill - Checks if the leader has a specific base experience level
has_base_skill > 2
Supported Scopes: leader

has_total_skill - Checks if the leader has a specific total (base + effective) experience level
has_total_skill > 2
Supported Scopes: leader

used_defense_platform_capacity_percent - Checks the starbases's used defense platform capacity in relative terms (0.00-1.00)
used_defense_platform_capacity_percent < 0.75
Supported Scopes: starbase

has_armor_percentage - Checks a fleet or ship's armor hit points percentage
has_armor_percentage > 0.5
Supported Scopes: ship fleet

has_shield_percentage - Checks a fleet or ship's shield hit points percentage
has_shield_percentage > 0.5
Supported Scopes: ship fleet
num_pops_assigned_to_job - Checks the number of pops assigned to the job (in total or from a specific pop group)
num_pops_assigned_to_job = {
    pop_group = <target> (if not specified, check total number)
    value < 300
}
Supported Scopes: pop job

pop_amount_percentage - Checks the percentage of pops in the scope that fulfill the specified criteria
pop_amount_percentage = {
    percentage > 0.74/variable
    limit = { <triggers> }
    exclude = { <triggers> } (optional: specifies pop groups to exclude from the calculation)
}
Supported Scopes: planet country pop_faction sector

ai_terraform_plans - Checks how many plans the AI have for terraforming
ai_terraform_plans > 0
Supported Scopes: country

pop_group_has_happiness - Checks if the current pop group has happiness or not.
pop_group_has_happiness = yes/no
Supported Scopes: pop group

pop_group_size - Checks if the size of the pop group is according to the argument.
pop_group_size > 8
Supported Scopes: pop group
organic_pops_last_month_growth - Checks how many organic pops the planet gained last month (through growth and assembly).
organic_pops_last_month_growth > 4
Supported Scopes: planet

artificial_pops_last_month_growth - Checks how many artificial pops the planet assembled last month.
artificial_pops_last_month_growth > 4
Supported Scopes: planet
OldEnt — 03:04
trait_has_all_tags - Checks if a trait has all tags in the list
trait_has_all_tags = { biological lithoids }
Supported Scopes: trait

trait_has_any_tag - Checks if a trait has at least one tag from the list
trait_has_any_tag = { biological lithoids }
Supported Scopes: trait

uses_ship_category - Checks if the graphical culture used by the scoped country allows for usage of a given ship category
uses_ship_category = <category>
Supported Scopes: country
is_default_species - checks if the scoped country has the target species set a default for its species group.
is_default_species = <target>
Supported Scopes: country

is_being_integrated_by - Checks if a species has a particular species right that enabled sub-species integration
is_being_integrated_by = <country>
Supported Scopes: species

has_active_focus - Checks if a country has a particular focus card active active
has_active_focus = <focus_card_key>
Supported Scopes: country

has_completed_focus - Checks if a country has a particular focus card completed
has_completed_focus = <focus_card_key>
Supported Scopes: country

num_zones - Checks the number the planet has of any, or a specific, zone
num_zones = { type = <key/any> value > 2/variable }
Supported Scopes: planet country

bioship_can_grow - Checks if the bioship can get growth progress.
bioship_can_grow = yes / no
Supported Scopes: ship

num_pops_with_job_tag - Checks how many pops that has jobs with all given tags in a planet
num_pops_with_job_tag = { tags = { farmer trader } value = 1000 }
Supported Scopes: planet

num_country_pops_with_job_tag - Checks how many pops that has jobs with all given tags in a country
num_country_pops_with_job_tag = { tags = { farmer trader } value = 1000 }
Supported Scopes: country
any_bypass_in_system - Iterate through every bypass in the scoped galactic object. - checks whether the enclosed triggers return true for any of them
any_bypass_in_system = { <triggers> }
Supported Scopes: galactic_object

count_bypass_in_system - Iterate through every bypass in the scoped galactic object. - checks whether the enclosed triggers return true for X/all of them
count_bypass_in_system = {
    count = <num/all/variable>
    limit = { <triggers> }
}
Supported Scopes: galactic_object
any_owned_pop_group - Iterate through all owned pop groups - checks whether the enclosed triggers return true for any of them
any_owned_pop_group = { <triggers> }
Supported Scopes: planet country pop_faction sector

count_owned_pop_group - Iterate through all owned pop groups - checks whether the enclosed triggers return true for X/all of them
count_owned_pop_group = {
    count = <num/all/variable>
    limit = { <triggers> }
}
Supported Scopes: planet country pop_faction sector

count_owned_pop_amount - Sums all pop amounts - checks whether the enclosed triggers return true for X/all of them
count_owned_pop_amount = {
    count = <num/all/variable>
    limit = { <triggers> }
}
Supported Scopes: planet country pop_faction sector
any_species_pop_group - Iterate through each pop group that belongs to this species; warning: resource-intensive! - checks whether the enclosed triggers return true for any of them
any_species_pop_group = { <triggers> }
Supported Scopes: species

count_species_pop_group - Iterate through each pop group that belongs to this species; warning: resource-intensive! - checks whether the enclosed triggers return true for X/all of them
count_species_pop_group = {
    count = <num/all/variable>
    limit = { <triggers> }
}
Supported Scopes: species

any_owned_pop_job - Iterate through all owned pop jobs - checks whether the enclosed triggers return true for any of them
any_owned_pop_job = { <triggers> }
Supported Scopes: planet country sector

count_owned_pop_job - Iterate through all owned pop jobs - checks whether the enclosed triggers return true for X/all of them
count_owned_pop_job = {
    count = <num/all/variable>
    limit = { <triggers> }
}
Supported Scopes: planet country sector

count_owned_workforce - Sums all workforce - checks whether the enclosed triggers return true for X/all of them
count_owned_workforce = {
    count = <num/all/variable>
    limit = { <triggers> }
}
Supported Scopes: planet country sector
any_existing_species_traits - Iterate through all existing species traits in the game - checks whether the enclosed triggers return true for any of them
any_existing_species_traits = { <triggers> }
Supported Scopes: no_scope

count_existing_species_traits - Iterate through all existing species traits in the game - checks whether the enclosed triggers return true for X/all of them
count_existing_species_traits = {
    count = <num/all/variable>
    limit = { <triggers> }
}
Supported Scopes: no_scope

any_trait_of_species - Iterate through each trait that the scoped species has
trait_of_species = { trait_has_all_tags = { positive } } - checks whether the enclosed triggers return true for any of them
any_trait_of_species = { <triggers> }
Supported Scopes: pop pop group leader species

count_trait_of_species - Iterate through each trait that the scoped species has
trait_of_species = { trait_has_all_tags = { positive } } - checks whether the enclosed triggers return true for X/all of them
count_trait_of_species = {
    count = <num/all/variable>
    limit = { <triggers> }
}
Supported Scopes: pop pop group leader species

any_trait_available_for_species - Iterate through all species traits and check if scope species doesn't have this trait
traits_available_for_species = { trait_has_all_tags = { organic positive } } - checks whether the enclosed triggers return true for any of them
any_trait_available_for_species = { <triggers> }
Supported Scopes: pop pop group leader species

count_trait_available_for_species - Iterate through all species traits and check if scope species doesn't have this trait
traits_available_for_species = { trait_has_all_tags = { organic positive } } - checks whether the enclosed triggers return true for X/all of them
count_trait_available_for_species = {
    count = <num/all/variable>
    limit = { <triggers> }
}
Supported Scopes: pop pop group leader species
any_starbase_in_system - Iterate through every starbase in the scoped galactic object. - checks whether the enclosed triggers return true for any of them
any_starbase_in_system = { <triggers> }
Supported Scopes: galactic_object

count_starbase_in_system - Iterate through every starbase in the scoped galactic object. - checks whether the enclosed triggers return true for X/all of them
count_starbase_in_system = {
    count = <num/all/variable>
    limit = { <triggers> }
}
Supported Scopes: galactic_object
 
Last edited:
Some 4.0 changes notes stolen from _savitar03 on Stellaris Modding Den:

# 4.0 Changes (direct link)

Pop related
any_owned_pop to any_owned_pop_group
random_owned_pop to weighted_random_owned_pop_group
every_owned_pop to every_owned_pop_group
num_sapient_pops to sapient_pop_amount
1 pop = 100 pop
pop_growth_from_immigration to planet_resettlement_unemployed_mult
pop_growth_from_immigration and/or planet_immigration_pull_mult to planet_resettlement_unemployed_destination_mult
planet_administrators_ and planet_priests_ to planet_bureaucrats
planet_researchers_society_research_produces_add to planet_doctors_society_research_produces_add
pop_growth_speed to founder_species_growth_mult
pop_demotion_time_mult to pop_unemployment_demotion_time_mult
planet_telepaths_unity_produces_add removed
standard_trade_routes_module = {} removed
job_archaeoengineers_add to job_biologist_add
job_archaeo_unit_add to job_bath_attendant_machine_add

Defines
count_as_split_fallen_empire
Defines for fleet upkeep based on logistics
cosmic storm damage defines added
define for bio ship growth
defines for ship target selection (shoot at x ship more)

Game Rules
is_unemployment_job
is_civilian_job

Fallen Empire changes
can build spynetwork
can manage spynetwork
can be part of galactic community/empire/council

On actions
on_pop_abducted to on_pop_group_abducted
on_pop_resettled to on_pop_group_resettled
on_pop_added to on_pop_group_added
on_pop_ethic_changed to on_daily_pop_ethics_divergence
on_pop_rights_change to on_pop_group_rights_change
on_pop_assembled to on_pop_assembly
on_subspecies_integration_step added
on_subspecies_integration_complete added
on_research_option_added added
on_favor_gained added
on_decision_enacted added
on_edict_activated added
on_fleet_leave_orbit added
on_ship_enter_fleet added
on_ship_leave_fleet added
on_resolution_put_to_vote added
on_resolution_vetoed added
on_ftl_society_enters_new_age added
on_genetic_ascension_events_list added
on_genetic_ascension_approach_purity_events_list added
on_genetic_ascension_approach_cloning_events_list added
on_genetic_ascension_approach_mutation_events_list added
on_genetic_ascension_hive_events_list added
on_genetic_ascension_hive_approach_purity_events_list added
on_genetic_ascension_hive_approach_cloning_events_list added
on_genetic_ascension_hive_approach_mutation_events_list added

Scripted effects
unemploy_pop = yes removed, use kill_assigned_pop_amount and create_pop_group or transfer_pop_amount
kill_pop to kill_single_pop

localization
[entertainer.GetIcon]
[entertainer.GetName]
[entertainer.GetNamePlural]
 
Last edited: