Stellaris Dev Diary #135 - Script changes and modding in 2.2

Stellaris Dev Diary #135 - Script changes and modding in 2.2

  • Crusader Kings III Available Now!

    The realm rejoices as Paradox Interactive announces the launch of Crusader Kings III, the latest entry in the publisher’s grand strategy role-playing game franchise. Advisors may now jockey for positions of influence and adversaries should save their schemes for another day, because on this day Crusader Kings III can be purchased on Steam, the Paradox Store, and other major online retailers.


    Real Strategy Requires Cunning

LordMune

Content Design Lead
26 Badges
Mar 15, 2015
137
907
  • IPO Investor
  • Stellaris: Galaxy Edition
  • Crusader Kings II
Greetings!

Today we’ll be taking a look at the script changes coming in the 2.2 ‘Le Guin’ update. We’re going to get pretty nitty and gritty here, so feel free to skip this one and join the hype train on Twitter if you’re not interested in the modding side of things.

I won’t be able to cover absolutely everything that’s changed in 2.2 in this dev diary, but we’ll be getting into some of the major changes so you can start thinking about how to update your mods!

First, some bits and bobs
  • The sequential if/else_if/else syntax now applies to triggers as well as effects. Give your mod a once-over to make sure your triggers conform; the old syntax may not generate errors in the log, but can cause unintended behavior.
  • Triggers and effects with hard-coded references to resources have been partially or completely removed and replaced with alternatives that can handle any new resources you see fit to script. E.g. in place of “energy >= 200” you will now use “resource_stockpile_compare = { resource = energy value >= 200 }” and “add_resource = { my_mod_resource = 10 }” etc.
  • Most of the new "economic units" come with a suite of automatically-generated modifiers; if you add a new District, there will be a modifier to increase the number of such districts on a planet. If you create a new job, there will be a modifier to add such jobs, and so on. This will make more sense when you familiarize yourself with the system.
  • Random_* effect weighting! We dredged this one up from the dankest pits of the code caves; some of you may already have discovered this functionality. Virtually all random_* effects (e.g. random_playable_country, random_owned_ship, etc.) can be weighted to make some objects more likely to be picked than others (that still meet the basic limit criteria). The weighting needs a base, and modifiers that take add or mult.
Code:
random_playable_country = {
    limit = { # has comms with 16 or more empires
        count_country = {
            limit = {
                is_country_type = default
                has_communications = prev
            }
            count >= 16
        }
    }
    weights = {
        base = 1
        modifier = { # strongly weighted towards democracies
            add = 6
            has_authority = auth_democratic
        }
        modifier = { # twice as likely for players
            mult = 2
            is_ai = no
        }
    }
    country_event = { id = my_mod.1 }
}

Planetary & Economy Rework
As any Content Designer will tell you, the best way to learn script is to read script (working with other Paradox developers also helps, but not all are so lucky). I’ll be posting some examples of entries in the cornerstones of the new economy and post-Tiles planet system: the Planetary Features, Districts, Buildings, Jobs, Social Strata, and Resources databases.

Planetary Features
common\deposits\
The old concept of Deposits has been reworked into Planetary Features, though they’re still referred to as deposits in script. They’re more flexible than the old deposits in many ways, now that they’re not tied to Tiles. They can change when terraformed, apply generic modifiers to planets, and Blocker-type features can execute generic effects when cleared by the player.

Code:
d_rich_mountain = {
    is_for_colonizeable = yes
    use_for_min_max_adjustments = yes
    
    category = deposit_cat_minerals
  
    use_weights_for_terraforming_swap_types = yes
    should_swap_deposit_on_terraforming = yes
    terraforming_swap_types = {
        d_submerged_ore_veins
    }
  
    planet_modifier = {
        district_mining_max = 3
    }
  
    potential = {
        OR = {
            is_planet_class = pc_continental
            is_planet_class = pc_desert
            is_planet_class = pc_alpine
            is_planet_class = pc_arctic
            is_planet_class = pc_arid
            is_planet_class = pc_tundra
            is_planet_class = pc_gaia
        }
    }
  
    drop_weight = {
        weight = @low
        modifier = {
            factor = @planet_type_bonus
            is_cold = yes
        }       
    }
}

Code:
d_minerals_2 = {
    resources = {
        category = orbital_mining_deposits
        produces = {
            minerals = 2
        }
    }
    station = shipclass_mining_station
    is_for_colonizeable = no
  
    potential = {
        OR = {
            is_planet_class = pc_asteroid
            is_planet_class = pc_molten
            is_planet_class = pc_toxic
            is_planet_class = pc_frozen
            is_planet_class = pc_barren
            is_planet_class = pc_barren_cold
            is_planet_class = pc_broken
            is_planet_class = pc_shattered
        }   
    }
  
    drop_weight = {
        weight = 5
        modifier = {
            factor = 0.5
            OR = {
                is_planet_class = pc_molten
                is_planet_class = pc_toxic
                is_planet_class = pc_frozen
            }
        }
        modifier = {
            factor = 2.0
            is_asteroid = yes
        }
    }
}

Code:
d_collapsed_burrows = {
    icon = d_deep_sinkhole
    time = 120
  
    is_for_colonizeable = yes
    category = deposit_cat_blockers   
  
    potential = { always = no } # added by event
  
    planet_modifier = {
        planet_max_districts_add = -1
    }
  
    on_cleared = {
        create_pop = {
            species = owner
        }
    }
  
    resources = {
        category = deposit_blockers
        cost = {
            energy = 300
        }
    }
}


Districts
common\districts\
As detailed in previous dev diaries, Districts largely replace the old concept of Tiles. They are generally built by players up to caps defined by Planetary Features, and in return create jobs.

Let’s take a look at the basic mining District type! You will find that the overall structure is very similar to the other entries outlined above, and this pattern will indeed repeat for most databases that have been updated in 2.2 ‘Le Guin’. This District database entry defines build time, where it’s valid to build, what it can be converted to on other planet types (e.g. Machine Worlds), what it costs to build and maintain, static and triggered modifiers to the planet it’s built on (providing different job types to different empire types), as well as the regular weighting for controlling how the AI prioritizes the district.

Code:
district_mining = {
    base_buildtime = 240
  
    min_for_deposits_on_planet = 1
    max_for_deposits_on_planet = 15
  
    show_on_uncolonized = {
        habitable_structure = no
        NOR = {
            is_planet_class = pc_machine
            is_planet_class = pc_hive
            is_planet_class = pc_city
        }
    }
  
    potential = {
        habitable_structure = no
        NOT = {
            is_planet_class = pc_machine
            is_planet_class = pc_hive
            is_planet_class = pc_city
        }
    }
  
    allow = {
        NOT = { has_modifier = resort_colony }
    }
  
    conversion_ratio = 1
    convert_to = {
        district_mining_uncapped
    }
  
    resources = {
        category = planet_districts
        cost = {
            minerals = @base_cost
        }
        upkeep = {
            energy = 1
        }
    }
  
    planet_modifier = {
        planet_housing_add = 2
    }
  
    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = {
                has_valid_civic = civic_agrarian_idyll
            }
        }
        modifier = {
            planet_housing_add = 1
        }
    }       
      
    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = { is_hive_empire = yes }
        }
        modifier = {
            job_mining_drone_add = 3
        }
    }
  
    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = { is_machine_empire = yes }
        }
        modifier = {
            job_mining_drone_add = 2
        }
    }   
      
    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = {
                is_gestalt = no
                is_fallen_empire_spiritualist = no
            }
        }
        modifier = {
            job_miner_add = 2
        }
    }

    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = { is_fallen_empire_spiritualist = yes }
        }
        modifier = {
            job_fe_acolyte_mine_add = 2
        }
    }
  
    triggered_desc = {
        trigger = {
            exists = owner
            owner = { is_gestalt = yes }
        }
        text = job_mining_drone_effect_desc
    }
    triggered_desc = {
        trigger = {
            exists = owner
            owner = {
                is_gestalt = no
                is_fallen_empire_spiritualist = no
            }
        }
        text = job_miner_effect_desc
    }

    triggered_desc = {
        trigger = {
            exists = owner
            owner = { is_fallen_empire_spiritualist = yes }
        }
        text = job_fe_acolyte_mine_effect_desc
    }
  
    prerequisites = {
        tech_mechanized_mining
    }
  
    ai_weight = {
        weight = 1
        modifier = {
            factor = 3
            owner = {
                has_monthly_income = {
                    resource = minerals
                    value < 0
                }
            }
        }

        modifier = {
            factor = 2
            free_housing < 0
        }

        modifier = {
            factor = 3
            any_owned_pop = { is_unemployed = yes }
        }

        # No one to work it anyway
        modifier = {
            factor = 0
            free_housing > 0
            NOT = {
                any_owned_pop = { is_unemployed = yes }
            }
        }
    }

    ai_resource_production = {
        minerals = 1
        trigger = {
            always = yes
        }
    }
}

Buildings
common\buildings\
Buildings are fairly similar to what you’re used to, with considerably expanded functionality that you’ll recognize from the examples above. Using “triggered_planet_modifier”, buildings can have different flavor and effects depending on a variety of factors. In the below example, building_foundry_2, the same building adds foundry jobs for regular empires, alloy_drone jobs for Hive Minds, and fabricator jobs for Machine Intelligences, depending on who controls the building. Build cost, upkeep, and resource production all fall under “resources = {}”, though the foundry only adds jobs and does not actually produce any resources on its own.

Code:
building_foundry_2 = {
    base_buildtime = 480
    can_build = no

    category = manufacturing
  
    allow = {
        has_upgraded_capital = yes
    }

    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = { is_hive_empire = yes }
        }
        modifier = {
            job_alloy_drone_add = 5
        }
    }
  
    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = { is_machine_empire = yes }
        }
        modifier = {
            job_fabricator_add = 5
        }
    }
  
    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = { is_regular_empire = yes }
        }
        modifier = {
            job_foundry_add = 5
        }
    }
  
    resources = {
        category = planet_buildings
        cost = {
            minerals = 600
            volatile_motes = 50
        }
        upkeep = {
            energy = 4
            volatile_motes = 1
        }
    }
  
    upgrades = {
        building_foundry_3
    }

    prerequisites = {
        tech_alloys_1
    }   
  
    triggered_desc = {
        trigger = {
            exists = owner
            owner = { is_regular_empire = yes }
        }
        text = job_foundry_effect_desc
    }
  
    triggered_desc = {
        trigger = {
            exists = owner
            owner = { is_hive_empire = yes }
        }
        text = job_alloy_drone_effect_desc
    }
  
    triggered_desc = {
        trigger = {
            exists = owner
            owner = { is_machine_empire = yes }
        }
        text = job_fabricator_effect_desc
    }
  
    ai_weight = {
        weight = 1
        modifier =
        {
            factor = 4
            owner = {
                has_monthly_income = {
                    resource = alloys
                    value < 15
                }
            }
        }
    }

    ai_resource_production = {
        alloys = 1
        trigger = {
            always = yes
        }
    }
}

Jobs
common\pop_jobs\
So, what about the jobs that buildings add? They’re defined in a separate jobs database, and you will again recognize the general syntax. Let’s take a look at Enforcer, a job that produces 1 Unity, produces an additional Unity if you’re a Police State, and costs 2 more Energy in upkeep but reduces more Crime if you have the Anti-Crime Campaign modifier active:

Code:
enforcer = {
    category = specialist
    condition_string = SPECIALIST_JOB_TRIGGER
    building_icon = building_precinct_house
    clothes_texture_index = 5

    possible = {
        specialist_job_check_trigger = yes
    }
  
    resources = {
        category = planet_enforcers
        produces = {
            unity = 1
        }   
        produces = {
            trigger = {
                owner = { has_valid_civic = civic_police_state }
            }
            unity = 1
        }
        upkeep = {
            trigger = {
                planet = { has_modifier = anticrime_campaign }
            }
            energy = 2
        }
    }
  
    pop_modifier = {
        pop_defense_armies_add = 2
    }
      
    planet_modifier = {
        planet_crime_add = -25
    }
  
    triggered_planet_modifier = {
        potential = {
            owner = { has_non_swapped_tradition = tr_domination_judgment_corps }
        }
        modifier = {
            planet_crime_add = -5
        }       
    }

    triggered_planet_modifier = {
        potential = {
            planet = { has_modifier = anticrime_campaign }
        }
        modifier = {
            planet_crime_add = -10
        }       
    }
  
    weight = {
        weight = @specialist_job_weight
        modifier = {
            factor = 0.2
            has_citizenship_rights = no   
            NOT = { has_trait = trait_mechanical }
        }
        modifier = {
            factor = 2
            has_trait = trait_resilient
        }           
        modifier = {
            factor = 2
            has_trait = trait_very_strong
        }   
        modifier = {
            factor = 1.5
            has_trait = trait_strong
        }   
        modifier = {
            factor = 10
            is_enslaved = yes
            has_slavery_type = { type = slavery_military }
        }           
        modifier = {
            factor = 0.50
            has_trait = trait_weak
        }
        modifier = {
            factor = 0.1
            can_take_servant_job = yes
        }
        modifier = {
            factor = 1.5
            has_job = enforcer
        }       
    }
}

Social Strata
common\pop_categories\
Strata, or social classes, such as the Specialists that the above Enforcer job belongs to, follow a similar standard. They have class-wide resource input, resource output, modifiers, and settings defined and triggered in database text files. The simple_drone stratum for Gestalt Consciousness empires is probably the most straight-forward example in the game:

Code:
simple_drone = {
    rank = 0
    clothes_texture_index = 2
  
    # This is called whenever a Pop is created, moved to a different planet, or gets a new owner
    assign_to_pop = {
        exists = owner
        owner = { is_gestalt = yes }
    }
    weight = {
        weight = 1
    }   
  
    pop_modifier = {
        pop_housing_usage_base = 1
        pop_amenities_usage_no_happiness_base = 1
    }
  
    # scope: pop to be resettled
    allow_resettlement = {
        always = yes
    }

    resettlement_cost = {
        energy = 100
    }

    unemployment_resources = {
        category = unemployment_resources
        # Standby Mode Crime event
        upkeep = {
            trigger = {
                planet = {
                    has_modifier = standby_mode
                }
            }
            energy = 2
        }
    }
  
    resources = {
        category = pop_category_drones
      
        upkeep = {
            trigger = {
                is_organic_species = yes
            }
            food = @living_standard_food_normal
        }

        upkeep = {
            trigger = {
                is_robotic_species = yes
            }
            energy = @living_standard_energy_normal
        }       
    }   
}

Resources
common\strategic_resources\
Resources are now fully scriptable rather than hard-coded, so you can easily add your own to complement the base game’s stable of Energy Credits, Minerals, Alloys and so forth. The database entries look a bit different this time, and define Marketplace tradability, what happens when you run a deficit, and base AI weights. Strategic Resources are also defined in this database.

Code:
food = {
    tradable = yes
    market_amount = 100
    market_price = 100
    max = 10000
  
    deficit_modifier = food_deficit #found in static modifiers
  
    ai_weight = {
        weight = 1
    }

    ai_wants = {
        base = 300
    }
}

Code:
sr_dark_matter = {
    tradable = yes
    market_amount = 5
    market_price = 100
    max = 10000

    prerequisites = { "tech_mine_dark_matter" }
    visibility_prerequisite = { always = yes }
  
    ai_weight = {
        weight = 100
    }
}

trigger_docs
Finally, here is the full trigger_docs documentation in 2.2 at the time of writing. Please be aware that it is liable to contain ambiguous or sometimes outright misleading information, and some things may even change before release!

== TRIGGER DOCUMENTATION ==
text - For 'desc={trigger={' use. Shows custom text
text = <text>
Supported Scopes: all
Supported Targets: none

custom_tooltip - Replaces the tooltips for the enclosed triggers with a custom text
custom_tooltip = {
text = <text used as fallback for both fails and successes>
fail_text = <text used for fails["string"/default/none]>
success_text = <text used for seccesses["string"/default/none]>
<triggers>
}
Supported Scopes: all
Supported Targets: none

if - Evaluates the triggers if the display_triggers of the limit are met
if = { limit = { <display_triggers> } <triggers> }
Supported Scopes: all
Supported Targets: none

any_playable_country - Checks if any playable country meet the specified criteria
any_playable_country = { <triggers> }
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_mission - Checks if the observation post has a specific mission
has_mission = technological_enlightenment_4
Supported Scopes: fleet
Supported Targets: none

switch - Switch case for a trigger
switch = {
trigger = pop_has_ethic
ethic_xenophile = { <trigger> }
ethic_xenophobe = { <trigger> }
default = { <trigger> }
}
Supported Scopes: all
Supported Targets: ???

num_fleets - Checks the country's number of fleets
num_fleets < 8
Supported Scopes: country
Supported Targets: ???

num_ships - Checks the country/fleet's number of ships
num_ships > 39
Supported Scopes: country fleet
Supported Targets: ???

research_leader - Checks if the country's researcher in a specific field meets the specified criteria
research_leader = { area = engineering <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_fleet_order - Checks if the ship/fleet has a specific fleet order
has_fleet_order = survey_planet_order
Supported Scopes: ship fleet
Supported Targets: none

closest_system - Checks if any close-by systems meet the criteria
closest_system = { min_steps = 2 max_steps = 20 <triggers> }
Supported Scopes: all
Supported Targets: ???

any_owned_fleet - Checks if any of the country's owned fleets meet the specified criteria
any_owned_fleet = { <targets> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_orbital_station - Checks if the planet has any kind of orbital station
has_orbital_station = yes
Supported Scopes: planet
Supported Targets: none

any_orbital_station - Checks if the planet's orbital station meets the specified criteria
any_orbital_station = { <triggers> }
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

else_if - Evaluates the enclosed triggers if the display_triggers of the preceding `if` or `else_if` is not met and its own display_trigger of the limit is met
if = { limit = { <display_triggers> } <triggers> }
else_if = { limit = { <display_triggers> } <triggers> }
Supported Scopes: all
Supported Targets: none

happiness - Checks the pop's happiness percentage
happiness < 90
Supported Scopes: pop
Supported Targets: none

is_half_species - Check if scoped species is half species of specific/any species
is_half_species = <target/any>
Supported Scopes: species
Supported Targets: none

faction_approval - Checks the scoped faction's approval percentage
faction_approval < 90
Supported Scopes: pop
Supported Targets: none

last_building_changed - Checks if the last building queued/unqueued/built/demolished/upgraded was the specified building
last_building_changed = building_capitol
Supported Scopes: planet
Supported Targets: none

empire_size - Checks the empire's size
empire_size < 20
Supported Scopes: country
Supported Targets: ???

last_district_changed - Checks if the last district queued/unqueued/built/demolished/upgraded was the specified district
last_district_changed = district_capitol
Supported Scopes: planet
Supported Targets: none

has_ring - Checks if the planet has a planetary ring
has_ring = yes
Supported Scopes: planet
Supported Targets: none

is_moon - Checks if the planet is the moon of another planet
is_moon = yes
Supported Scopes: planet
Supported Targets: none

opinion - Checks the country's opinion of the target country
opinion = { who = <target> value = -70 }
Supported Scopes: country
Supported Targets: ???

ideal_planet_class - Checks if the country's ideal planet class is a specific class
ideal_planet_class = pc_tundra
Supported Scopes: country
Supported Targets: none

ethos - Checks the average ethics divergence on the planet
ethos < 0.4
Supported Scopes: planet
Supported Targets: none

distance - Checks the ship/fleet/planet/leader/pop/system's galaxy map distance to target in absolute units
distance = { source = <target> min = 50 max = 120 type=<hyperlane/euclidean> uses_bypass=<yes/no> bypass_empire=<empire> min_jumps = 2 max_jumps = 10 }
Supported Scopes: planet ship pop fleet galactic_object leader
Supported Targets: none

is_pirate - Checks if the country is a pirate country
is_pirate = yes
Supported Scopes: country
Supported Targets: none

planet_size - Checks the planet's size
planet_size < 20
Supported Scopes: planet
Supported Targets: ???

gender - Checks the leader's gender
gender = female
Supported Scopes: leader
Supported Targets: ???

any_planet_within_border - Checks if any planets within the country's borders meet the specified criteria
any_planet_within_border = { <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

any_owned_ship - Checks if any of the country's ships meet the specified criteria
any_owned_ship = { <triggers> }
Supported Scopes: country fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

any_ship - Checks if any ships in the game meet the specified criteria
any_ship = { <triggers> }
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

pop_has_ethic - Checks if the pop has a specific ethos
pop_has_ethic = ethic_fanatic_xenophile
Supported Scopes: pop
Supported Targets: none

pop_has_trait - Checks if the pop has a specific trait
pop_has_trait = trait_decadent
Supported Scopes: pop
Supported Targets: none

has_observation_outpost - Checks if the planet has an observation post
has_observation_outpost = yes
Supported Scopes: planet
Supported Targets: none

starting_system - Checks if the system is the starting system for any country
starting_system = yes
Supported Scopes: galactic_object
Supported Targets: none

graphical_culture - Checks if the country has specific graphical culture
graphical_culture = fungoid_01
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

vassals - Checks the country's number of vassals
vassals > 0
Supported Scopes: country
Supported Targets: ???

exists - Checks if a target scope exists
exists = <target>
Supported Scopes: all
Supported Targets: ???

has_edict - Checks if the country has a specific edict enabled
has_edict = crystal_sonar
Supported Scopes: country
Supported Targets: ???

is_designable - Checks if the scoped ship design, ship or fleet (all ships) has a designable ship size.
is_designable = yes
Supported Scopes: ship fleet design
Supported Targets: none

is_in_cluster - Checks if the planet/system belongs to a specific spawning cluster
is_in_cluster = resource_cluster_3
Supported Scopes: planet galactic_object
Supported Targets: ???

any_moon - Checks if any of the planet's moons meet the specified criteria
any_moon = { <triggers> }
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

num_empires - Checks the number of regular empires in the galaxy
num_empires > 3
Supported Scopes: country
Supported Targets: none

leader_class - Checks if the leader is of a specific class
leader_class = scientist
Supported Scopes: leader
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

observation_outpost_owner - Checks if the planet's observation post's owner meets the specified criteria
observation_outpost_owner = { <triggers> }
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

observation_outpost - Checks if the planet's observation post meets the specified criteria
observation_outpost = { <triggers> }
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_deposit - Checks if the planet has any, or a specific, deposit
has_deposit = yes
has_deposit = d_immense_engineering_deposit
Supported Scopes: planet deposit
Supported Targets: none

is_same_value - Checks if the current scope and the target scope are the same thing
is_same_value = <target>
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_pop_faction_flag - Checks if the pop faction has a specific flag
has_pop_faction_flag = <flag>
Supported Scopes: pop pop_faction
Supported Targets: none

num_communications - Checks the country's number of established communications
num_communications > 3
Supported Scopes: country
Supported Targets: none

last_changed_policy - Checks if the last policy changed by the country was a specific policy
last_changed_policy = slavery
Supported Scopes: country
Supported Targets: ???

is_species - Checks if the pop/country's founder species is of a specific pre-defined species
is_species = ROBOT_POP_SPECIES_2
Supported Scopes: pop leader species
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

last_increased_tech - Checks if the country's last researched technology was a specific tech
last_increased_tech = tech_gene_expressions
Supported Scopes: country
Supported Targets: ???

any_war - Checks if any wars meet the specified criteria
any_war = { <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

any_defender - Checks if any of the defenders in the war meet the specified criteria
any_defender = { <triggers> }
Supported Scopes: war
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

any_attacker - Checks if any attackers in the war meet the specified criteria
any_attacker = { <triggers> }
Supported Scopes: war
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

original_owner - Checks if the planet is still owned by its first colonizer
original owner = yes
Supported Scopes: planet
Supported Targets: none

tech_unlocked_ratio - Checks the relative amount of already-researched tech between the country and target country
tech_unlocked_ratio = { who = <target> ratio = 0.4 }
Supported Scopes: country
Supported Targets: ???

can_colonize - Checks if the planet can be colonized by target country
can_colonize = { who = <target> status = yes }
Supported Scopes: planet
Supported Targets: none

has_special_project - Checks if the country has a specific special project available
has_special_project = EMERGENCY_BUOY_PROJECT
Supported Scopes: country
Supported Targets: none

is_subspecies - Checks if the pop/country/species is a subspecies of the target pop/country/species
is_subspecies = <target>
Supported Scopes: country pop species
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_valid - Checks to see if target scope is valid for the country/planet/army
is_valid = <target>
Supported Scopes: planet country army
Supported Targets: ???

check_pop_faction_parameter - Checks if one of the faction's parameters is the same as target scope
check_pop_faction_parameter = { which = <parameter> value = <target> }
Supported Scopes: pop_faction
Supported Targets: none

is_robot_pop - Checks if the pop is a robot
is_robot_pop = yes
Supported Scopes: pop
Supported Targets: none

num_fallen_empires - Checks the number of fallen empires in the galaxy
num_fallen_empires > 3
Supported Scopes: country
Supported Targets: none

is_preferred_weapons - Checks if the country's AI prefers weapons using this component tag
is_preferred_weapons = weapon_type_energy
Supported Scopes: country
Supported Targets: none

has_access_fleet - Checks if the system is accessible to the target country with construction vessels
has_access_construction = <target>
Supported Scopes: galactic_object
Supported Targets: ???

is_point_of_interest - Checks if the planet/country/ship/system/ambient object has a specific point of interest for a specific event chain for a specific country
is_point_of_interest = { id = <id> event_chain = <event_chain> owner = <target> }
Supported Scopes: planet country ship galactic_object ambient_object
Supported Targets: ???

terraformed_by - Checks if planet is terraformed by country.
Supported Scopes: planet
Supported Targets: none

has_megastructure - Checks if a country or star has a mega structure.
Supported Scopes: country galactic_object
Supported Targets: none

recently_lost_war - Checks if the country is at war
is_at_war = yes
Supported Scopes: country
Supported Targets: none

count_diplo_ties - Checks the number of diplomatic in the scope that fulfill the specified criteria
count_countries = { count < 6 limit = { <triggers> } }
Supported Scopes: country
Supported Targets: none

has_research_agreement - Checks if two countries have a research agreement.
Supported Scopes: country
Supported Targets: none

has_tributary - Checks if two countries have a research agreement.
Supported Scopes: country
Supported Targets: none

upgrade_days_left - Checks a mega structure amount of upgrade days left.
upgrade_days_left > 360

Supported Scopes: megastructure
Supported Targets: none

has_any_megastructure - Checks if the scope has a megastructure
has_any_megastructure = yes
Supported Scopes: planet galactic_object
Supported Targets: none

former_living_standard_type - Compares the former living standard type with the given one.
former_living_standard_type = living_standard_normal
Supported Scopes: pop
Supported Targets: none

former_citizenship_type - Compares the former citizenship type with the given one.
former_citizenship_type = citizenship_full
Supported Scopes: pop
Supported Targets: none

former_military_service_type - Compares the former military service type with the given one.
former_military_service_type = military_service_full
Supported Scopes: pop
Supported Targets: none

former_slavery_type - Compares the former slavery type with the given one.
former_slavery_type = slavery_normal
Supported Scopes: pop
Supported Targets: none

former_purge_type - Compares the former purge type with the given one.
former_purge_type = purge_normal
Supported Scopes: pop
Supported Targets: none

former_population_control_type - Compares the former population control type with the given one.
former_population_control_type = population_control_yes
Supported Scopes: pop
Supported Targets: none

former_migration_control_type - Compares the former migration control type with the given one.
former_migration_control_type = migration_control_yes
Supported Scopes: pop
Supported Targets: none

is_alliance_fleet - Checks if the scoped fleet is an alliance fleet.
is_alliance_fleet = <yes/no>
Supported Scopes: fleet
Supported Targets: none

is_researching_special_project - Checks if the country is currently researching a specific special project
is_researching_special_project = special_project_name
Supported Scopes: country leader
Supported Targets: none

and - all inside trigger must be true
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

or - At least one entry inside the trigger must be true
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

not - An inverted trigger
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

any_planet - Checks if any planet in the system meets the specified criteria
any_planet = { <triggers> }
Supported Scopes: galactic_object
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_star - Checks if the planet is a star
is_star = yes
Supported Scopes: planet
Supported Targets: none

is_asteroid - Checks if the planet is an asteroid
is_asteroid = yes
Supported Scopes: planet
Supported Targets: none

species_portrait - Checks if the species (or pop/empire's dominant species) uses a certain portrait
species_portrait = rep13
Supported Scopes: country pop species
Supported Targets: none

is_neutral_to - Checks if the country has a neutral attitude towards target country
is_neutral_to = <target>
Supported Scopes: country
Supported Targets: none

trust - Checks the country's trust of the target country
trust = { who = <target> value = 50 }
Supported Scopes: country
Supported Targets: ???

hidden_trigger - Hides the tooltip for the triggers within
hidden_trigger = { <triggers> }
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_district - Checks if the planet has any, or a specific, district
has_district = yes
has_district = district_mining
Supported Scopes: planet
Supported Targets: none

free_district_slots - Checks the planet's number of slots available for new constructions
free_district_slots > 2
Supported Scopes: planet
Supported Targets: ???

has_owner - Checks if the planet/system is colonized
has_owner = yes
Supported Scopes: planet galactic_object
Supported Targets: none

any_owned_planet - Checks if any of the country's owned planets meet the specified criteria
any_owned_planet = { <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

free_housing - Checks the planet's available housing
free_housing > 5
Supported Scopes: planet
Supported Targets: ???

any_controlled_planet - Checks if any of the country's controlled planets meet the specified criteria
any_controlled_planet = { <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_ai - Checks if the country is played by the AI
is_ai = no
Supported Scopes: country
Supported Targets: none

always - Sets trigger to be either always true or false
always = yes
Supported Scopes: all
Supported Targets: none

has_trait - Checks if a pop/leader/species/country's dominant species has a certain trait
has_trait = leader_trait_carefree
Supported Scopes: country pop leader species
Supported Targets: none

has_ethic - Checks if a country has a certain ethos
has_ethic = ethic_fanatic_pacifist
Supported Scopes: country pop
Supported Targets: none

is_owned_by - Checks if the planet/system/army/ship is owned by the target country
is_owned_by = <target>
Supported Scopes: planet ship galactic_object army
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

pop_can_live_on_planet - Checks if the pop's species is allowed to live on its planet
pop_can_live_on_planet = yes
Supported Scopes: pop
Supported Targets: none

days_passed - Checks the number of in-game days passed since the 2200.1.1 start
days_passed < 15
Supported Scopes: all
Supported Targets: none

free_amenities - Checks the planet's available amenities
free_amenities > 5
Supported Scopes: planet
Supported Targets: ???

has_deficit - Checks if the country has a deficit of the defined resource
has_deficit = minerals
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_commercial_pact - Check if the country has a commercial pact with target country
has_commercial_pact = <target>
Supported Scopes: country
Supported Targets: none

is_being_assimilated - Checks if the pop is being purged
is_being_assimilated = yes
Supported Scopes: pop
Supported Targets: none

num_guaranteed_colonies - Checks the number of guaranteed colonies defined in setup
num_guaranteed_colonies > 1
Supported Scopes: all
Supported Targets: none

has_branch_office - Check if the planet has a branch office owned by target country/any country/no country
has_branch_office = <target/yes/no>
Supported Scopes: planet
Supported Targets: none

is_same_species - checks if the scoped object is of the same species as another object
is_same_species = <target>
Supported Scopes: country ship pop leader army species
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_criminal_syndicate - Checks if the country is a criminal syndicate
is_criminal_syndicate = yes
Supported Scopes: country
Supported Targets: none

is_blocker - Checks if scoped deposit is a blocker-type
is_blocker = yes
Supported Scopes: deposit
Supported Targets: none

is_same_empire - Checks if the country is the same as another, target country
is_same_empire = <target>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

free_branch_office_building_slots - Checks the planet's number of branch office slots available for new constructions
free_building_slots > 2
Supported Scopes: planet
Supported Targets: ???

branch_office_value - Checks the planet's branch officevalue
branch_office_value = { who = <target> value > 10 }
Supported Scopes: planet
Supported Targets: ???

free_jobs - Checks the number of jobs compared to pops on the planet
free_jobs > 12
Supported Scopes: planet
Supported Targets: none

is_planet_class - Checks if the planet is of a certain class
is_planet_class = pc_tundra
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_strategic_resource - Checks if the planet has any strategic resource
has_strategic_resource = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_star_class - Checks if the system/planet(star) is of a certain class
is_star_class = sc_black_hole
Supported Scopes: planet galactic_object
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_technology - Checks if the country has a technology (of at least a specific level)
has_technology = tech_spaceport_4
Supported Scopes: country
Supported Targets: none

any_fleet_in_orbit - Checks if any fleet in orbit of the planet meet the specified criteria
any_fleet_in_orbit = { <triggers> }
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

planet_devastation - Checks the planet's devastation
planet_devastation > 10
Supported Scopes: planet
Supported Targets: ???

is_pop_category - Checks if the pop has the chosen pop category
is_pop_category = <key>
Supported Scopes: pop
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

won_the_game - Checks if scoped country won the game
won_the_game = yes
Supported Scopes: country
Supported Targets: none

planet_stability - Compares the stability present on the planet with the given value
planet_stability > 50
Supported Scopes: planet
Supported Targets: none

perc_communications_with_playable - Checks the country's percentage of communications with playable empires
num_communications > 3
Supported Scopes: country
Supported Targets: none

planet_crime - Compares the crime present on the planet with the given value
planet_crime > 50
Supported Scopes: planet
Supported Targets: none

has_job - Checks if the pop has a specific job, or any job if set to yes
has_job = <key/yes>
Supported Scopes: pop
Supported Targets: none

has_planet_modifier - Checks if the planet has a specific planet modifier
has_planet_modifier = pm_titanic_life
Supported Scopes: planet
Supported Targets: none

is_deposit_type - Checks if deposit is specified type
is_deposit_type = d_immense_engineering_deposit
Supported Scopes: deposit
Supported Targets: none

has_built_species - Checks if country has a built species defined
has_built_species = yes/no
Supported Scopes: country
Supported Targets: ???

num_buildings - Checks the number the planet has of any, or a specific, building
num_buildings = { type = <key/any> value > 2 }
Supported Scopes: planet
Supported Targets: none

num_districts - Checks the number the planet has of any, or a specific, district
num_districts = { type = <key/any> value > 2 }
Supported Scopes: planet
Supported Targets: none

num_free_districts - Checks the number of available slots the planet has of any, or a specific, district
num_free_districts = { type = <key/any> value > 2 }
Supported Scopes: planet
Supported Targets: none

has_planet_flag - Checks if the planet has a specific flag
has_planet_flag = <flag>
Supported Scopes: planet
Supported Targets: none

has_country_flag - Checks if the empire has a specific flag
has_country_flag = <flag>
Supported Scopes: country
Supported Targets: none

has_fleet_flag - Checks if the fleet has a specific flag
has_fleet_flag = <flag>
Supported Scopes: fleet
Supported Targets: none

has_ship_flag - Checks if the ship has a specific flag
ships_flag = <flag>
Supported Scopes: ship
Supported Targets: none

is_ship_class - Checks if the ship/fleet/design is a specific class
is_ship_class = shipclass_colonizer
Supported Scopes: ship fleet design
Supported Targets: none

is_ship_size - Checks if the ship/fleet/design is a specific ship size
is_ship_size = mining_station
Supported Scopes: ship fleet design
Supported Targets: none

is_capital - Checks if the planet is its owner's capital
is_capital = yes
Supported Scopes: planet
Supported Targets: none

has_ground_combat - Checks if ground combat is taking place on the planet
has_ground_combat = yes
Supported Scopes: planet
Supported Targets: none

is_at_war - Checks if the country is at war
is_at_war = yes
Supported Scopes: country
Supported Targets: none

num_owned_planets - Checks the country's number of owned planets
num_owned_planets < 8
Supported Scopes: country
Supported Targets: none

has_government - Checks if the country has a specific government type
has_government = despotic_hegemony
Supported Scopes: country
Supported Targets: none

num_pops - Checks the number of pops on the planet/country/pop faction
num_pops > 12
Supported Scopes: planet country pop_faction
Supported Targets: none

is_primitive - Checks if the country is a primitive, pre-FTL civilization
is_primitive = yes
Supported Scopes: country
Supported Targets: none

is_inside_nebula - checks if the planet/ship/fleet/system is inside a nebula
is_inside_nebula = yes
Supported Scopes: planet ship fleet galactic_object
Supported Targets: none

is_inside_border - Checks if the planet/ship/fleet/system is inside the borders of the target country
is_inside_border = <target>
Supported Scopes: planet ship fleet galactic_object
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

any_country - Iterate through all countries
any_country = { <count=<num/all>> <triggers> }
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

any_pop - Checks if any of the planet/species/pop faction pops meet the specified criteria
any_pop = { <triggers> }
Supported Scopes: planet species pop_faction
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_overlord - Checks if the country is the overlord of any subject countries
is_overlord = yes
Supported Scopes: country
Supported Targets: none

is_at_war_with - Checks if the country is at war with the target country
is_at_war_with = <target>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

their_opinion - Checks target country's opinion value of the current country
their_opinion = { who = <target> value > 25 }
Supported Scopes: country
Supported Targets: ???

is_same_species_class - Checks if the pop/country is of the same species class as another pop/country
is_same_species_class = <target>
Supported Scopes: country pop
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_federation - Checks if the country is in a federation
has_federation = yes
Supported Scopes: country
Supported Targets: none

is_colonizable - Checks if the planet can theoretically be colonized
is_colonizable = yes
Supported Scopes: planet
Supported Targets: none

has_level - Checks if the leader has a specific experience level
has_level > 2
Supported Scopes: leader
Supported Targets: ???

num_minerals - Checks the planet's total amount of minerals
num_minerals < 20
Supported Scopes: planet
Supported Targets: none

num_physics - Checks the planet's total amount of physics research
num_physics = 8
Supported Scopes: planet
Supported Targets: none

num_society - Checks the planet's total amount of society research
num_society > 8
Supported Scopes: planet
Supported Targets: none

num_engineering - Checks the planet's total amount of engineering research
num_engineering < 8
Supported Scopes: planet
Supported Targets: none

num_modifiers - Checks the planet's number of modifiers
num_modifiers < 3
Supported Scopes: planet
Supported Targets: none

has_any_strategic_resource - Checks if the planet has any strategic resource
has_any_strategic_resource = yes
Supported Scopes: planet
Supported Targets: none

has_pop_flag - Checks if the pop has a specific flag
has_pop_flag = <flag>
Supported Scopes: pop
Supported Targets: none

is_occupied_flag - Checks if the planet is under military occupation
is_occupied_flag = yes
Supported Scopes: planet
Supported Targets: none

is_damaged - Checks if the ship is damaged
is_damaged = yes
Supported Scopes: ship
Supported Targets: none

has_hp - Checks the ship's hull points
has_hp > 200
Supported Scopes: ship
Supported Targets: none

is_surveyed - Checks if the planet/system has been survey by target country
is_surveyed = { who = <target> status = yes }
Supported Scopes: planet galactic_object
Supported Targets: none

has_global_flag - Checks if a Global Flag has been set
has_global_flag = <flag>
Supported Scopes: all
Supported Targets: none

check_variable - Checks a variable for the country/leader/planet/system/fleet
check_variable = { which = <variable> value < 4 }
Supported Scopes: planet country fleet galactic_object leader
Supported Targets: none

is_colony - Checks if the planet is colonized
is_colony = yes
Supported Scopes: planet
Supported Targets: none

habitability - Checks the planet's habitability (0 to 1) for target pop/species
habitability = { who = <target> value = 0.6 }
Supported Scopes: planet
Supported Targets: none

has_building - Checks if the planet has any, or a specific, building
has_building = yes
has_building = building_capital_3
Supported Scopes: planet
Supported Targets: none

is_controlled_by - Checks if the planet is controlled by the target country
is_controlled_by = <target>
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_terraformed - Checks if the planet has ever been terraformed
is_terraformed = yes
Supported Scopes: planet
Supported Targets: none

is_terraforming - Checks if the planet is currently being terraformed
is_terraforming = yes
Supported Scopes: planet
Supported Targets: none

is_federation_leader - Checks if the country is the leader of their federation
is_federation_leader = yes
Supported Scopes: country
Supported Targets: none

has_star_flag - Checks if the solar system has a specific flag
has_star_flag = <flag>
Supported Scopes: galactic_object
Supported Targets: none

has_mining_station - Checks if the planet has an orbital mining station
has_mining_station = yes
Supported Scopes: planet
Supported Targets: none

has_research_station - Checks if the planet has an orbital researc station
has_research_station = yes
Supported Scopes: planet
Supported Targets: none

any_research_station - Checks if the planet's orbital research station meets the specified criteria
any_research_station = { <triggers> }
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

any_mining_station - Checks if the planet's orbital mining station meets the specified criteria
any_mining_station = { <triggers> }
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

army_type - Checks the army's type
army_type = assault_army
Supported Scopes: army
Supported Targets: none

has_army - Checks if the planet has an army
has_army = yes
Supported Scopes: planet
Supported Targets: none

is_advisor_active - checks if a country has an advisor
Supported Scopes: country
Supported Targets: none

count_pops - Checks the number of pops in the scope that fulfill the specified criteria
count_pops = { limit = { <triggers> } count < 6 }
Supported Scopes: planet species pop_faction
Supported Targets: none

is_enslaved - Checks if the pop is a slave
is_enslaved = yes
Supported Scopes: pop
Supported Targets: none

is_being_purged - Checks if the pop is being purged
is_being_purged = yes
Supported Scopes: pop
Supported Targets: none

income - Checks the country's monthly energy credit income
income < 90
Supported Scopes: country
Supported Targets: none

expenses - Checks the country's monthly energy credit expenses
expenses > 28
Supported Scopes: country
Supported Targets: none

produced_energy - Checks the country's gross amount of produced energy credits
produced_energy < 100
Supported Scopes: country
Supported Targets: none

trade_income - Checks the country's energy credits income from trade for the previous month
trade_income < 30
Supported Scopes: country
Supported Targets: none

trade_expenses - Checks the country's energy credits expenses from trade for the previous month
trade_expenses < 30
Supported Scopes: country
Supported Targets: none

ship_maintenance - Checks the country's total ship maintenance expenses for the previous month, in energy credits
ship_maintenance < 226
Supported Scopes: country
Supported Targets: none

army_maintenance - Checks the country's total army maintenance expenses for the previous month, in energy credits
army_maintenance > 226
Supported Scopes: country
Supported Targets: none

colony_maintenance - Checks the country's total colony maintenance expenses for the previous month, in energy credits
colony_maintenance > 25
Supported Scopes: country
Supported Targets: none

station_maintenance - Checks the country's total orbital station maintenance expenses for the previous month, in energy credits
station_maintenance > 126
Supported Scopes: country
Supported Targets: none

construction_expenses - Checks the country's construction expenses for the previous month
construction_expenses > 290
Supported Scopes: country
Supported Targets: none

federation_expenses - Checks the country's federation expenses for the previous month
federation_expenses < 1000
Supported Scopes: country
Supported Targets: none

has_anomaly - Checks if the planet has an anomaly
has_anomaly = yes
Supported Scopes: planet
Supported Targets: none

stored_physics_points - Checks the country's amount of stored physics research
stored_physics_points
Supported Scopes: country
Supported Targets: none

stored_society_points - Checks the country's amount of stored society research
stored_society_points
Supported Scopes: country
Supported Targets: none

stored_engineering_points - Checks the country's amount of stored engineering research
stored_engineering_points
Supported Scopes: country
Supported Targets: none

balance - Checks the country's energy credit balance
balance < 39
Supported Scopes: country
Supported Targets: none

running_balance - Checks the country's running energy credit balance
running_balance > 61
Supported Scopes: country
Supported Targets: none

is_planet - Checks if the planet is the same as target planet
is_planet = <target>
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_pop - Checks if the pop is the same as target pop
is_pop = <target>
Supported Scopes: pop
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_ship - Checks if the ship is the same as target ship
is_ship = <target>
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_army - Checks if the army is the same as target army
is_army = <target>
Supported Scopes: army
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_country - Checks if the country is the same as target country
is_country = <target>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_tutorial_level - Checks the country's tutorial level (0 off, 1 limited, 2 full)
is_tutorial_level = 0
Supported Scopes: country
Supported Targets: none

is_multiplayer - Checks if the game is running in multiplayer
is_multiplayer = yes
Supported Scopes: all
Supported Targets: none

has_event_chain - Checks if the country has a specific event chain
has_event_chain = old_gods_chain
Supported Scopes: country
Supported Targets: none

is_species_class - Checks if the pop/country's founder species is a specific species class
is_species_class = MAM
Supported Scopes: country pop species
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_opinion_modifier - Checks if the country has a specific opinion modifier towards target country or anyone
has_opinion_modifier = { who = <target (optional)> modifier = encroaching_colony is_reverse = no }
Supported Scopes: country
Supported Targets: none

has_established_contact - Checks if the country has established contact with target country
has_established_contact = <target>
Supported Scopes: country
Supported Targets: none

has_completed_event_chain_counter - Checks if the country has completed a specific counter in an event chain
has_completed_event_chain_counter = { event_chain = amoebas_2_chain counter = amoebas_slaughtered }
Supported Scopes: country
Supported Targets: none

has_planet_class - Checks if the system has planet of specific class
has_planet_class = pc_tundra
Supported Scopes: galactic_object
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_disabled - Checks if the ship/fleet is disabled
is_disabled = yes
Supported Scopes: ship fleet
Supported Targets: ???

has_existing_ship_design - Checks if the country has a specific ship design available

Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_resource - Checks if the planet has a specific amount of a specific resource
has_resource = { type = minerals amount < 5 }
has_resource = no
Supported Scopes: planet country deposit
Supported Targets: ???

has_building_construction - Checks if the planet has any, or a specific, ongoing building construction
has_building_construction = yes
has_building_construction = building_capital_3
Supported Scopes: planet
Supported Targets: none

any_deposit - Checks if any deposits on the planet meet the criteria
any_deposit = { <triggers> }
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

free_building_slots - Checks the planet's number of slots available for new constructions
free_building_slots > 2
Supported Scopes: planet
Supported Targets: ???

has_relation_flag - Checks if the country has a relation flag towards target country
has_relation_flag = { who = <target> flag = <flag> }
Supported Scopes: country
Supported Targets: ???

reverse_has_relation_flag - Checks if the target country has a relation flag towards the country
reverse_has_relation_flag = { who = <target> flag = <flag> }
Supported Scopes: country
Supported Targets: ???

has_moon - Checks if the planet has a moon
has_moon = yes
Supported Scopes: planet
Supported Targets: none

num_moons - Checks the planet's number of moons
num_moons < 4
Supported Scopes: planet
Supported Targets: none

is_sapient - Checks if the pop is sapient
is_sapient = no
Supported Scopes: pop species
Supported Targets: none

is_preventing_anomaly - Checks if the planet is prevented from generating anomalies
is_preventing_anomaly = yes
Supported Scopes: planet
Supported Targets: ???

has_deposit_for - Checks if the planet has a deposit for a specific ship class
has_deposit_for = shipclass_mining_station
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

colony_age - Checks the planet's (colony's) age in months
colony_age > 12
Supported Scopes: planet
Supported Targets: none

is_bottleneck_system - Checks if the system is bottleneck within the range NDefines::NGameplay::SYSTEM_BOTTLENECK_RADIUSis_bottleneck_system = yes
Supported Scopes: galactic_object
Supported Targets: ???

is_rim_system - Checks if the system is on the galactic rim
is_rim_system = yes
Supported Scopes: galactic_object
Supported Targets: ???

any_rim_system - Iterate through all rim systems
any_rim_system = { <count=<num/all>> <triggers> }
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_country_type - Checks if the country is a specific type
is_country_type = fallen_empire
Supported Scopes: country
Supported Targets: none

has_modifier - Checks if the country/planet/pop/system has a certain modifier
has_modifier = <modifier>
Supported Scopes: planet country ship pop galactic_object pop_faction
Supported Targets: none

any_ship_in_system - Checks if any ships in the system meet the specified criteria
any_ship_in_system = { <triggers> }
Supported Scopes: galactic_object
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

mission_progress - Checks if the observation post has achieved specific progress in a mission
mission_progress > 0.7
Supported Scopes: fleet
Supported Targets: none

num_ethics - Checks the country/pop's number of ethics
num_ethics = 3
Supported Scopes: country pop
Supported Targets: none

num_traits - Checks the country/pop/leader/species' number of traits
num_traits < 3
Supported Scopes: country pop leader species
Supported Targets: none

has_truce - Checks if the country has a truce with target country
has_truce = <target>
Supported Scopes: country
Supported Targets: none

is_ringworld - Checks if the planet is a ringworld
is_ringworld = yes
Supported Scopes: planet
Supported Targets: none

member_of_faction - Checks if the pop belongs to any, or a specific, faction
member_of_faction = no
Supported Scopes: pop
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

support - Checks the faction's support level
support > 0.5
Supported Scopes: pop_faction
Supported Targets: none

is_ideal_planet_class - Checks if the planet is of the ideal class for target country
is_ideal_planet_class = { who = <target> status = yes }
Supported Scopes: planet
Supported Targets: none

is_pop_faction_type - Checks the faction's type
is_pop_faction_type = malcontent_slaves
Supported Scopes: pop_faction
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

intel_level - Checks the country's intel level of target system
intel_level = { level > low system = <target> }
Supported Scopes: country
Supported Targets: none

is_researching_area - Checks the scientist's field of research
is_researching_area = society
Supported Scopes: leader
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

any_owned_leader - Checks if any of the country's leaders meet the specified criteria
any_owned_leader = { <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

any_owned_pop - Iterate through all owned pops
any_owned_pop = { <count=<num/all>> <triggers> }
Supported Scopes: planet country pop_faction
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_faction - Checks if the country has any instance of target faction type
has_faction = planet_separatists
Supported Scopes: country
Supported Targets: none

count_owned_pops - Count the number of owned pops in the country that fulfill the specified criteria
count_owned_pops = { limit = { <triggers> } count > 12 }
Supported Scopes: planet country pop_faction
Supported Targets: none

can_declare_war - Checks if the country can declare war against target country
can_declare_war = {
target = <target country>
attacker_war_goal = <war goal>
}
Supported Scopes: country
Supported Targets: ???

is_hostile - Checks if the country is hostile towards target country
is_hostile = <target>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_communications - Checks if the country has established communications with target country
has_communications = <target>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_country_resource - Checks the country's amount of a specific stored resource
has_country_resource = { type = minerals amount > 99 }
Supported Scopes: country
Supported Targets: ???

has_leader_flag - Checks if the leader has a specific flag
has_leader_flag = <flag>
Supported Scopes: leader
Supported Targets: none

num_killed_ships - Checks how many of target country's ships that the country has destroyed
num_killed_ships = { target = <target> value > 5 }
Supported Scopes: country
Supported Targets: ???

num_taken_planets - Checks how many planets the country has taken from target country
num_taken_planets = { target = <target> value > 1 }
Supported Scopes: country
Supported Targets: ???

count_ships - Checks the number of ships in the galaxy that meet the specified criteria
count_ships = { limit = { <triggers> } count < 20 }
Supported Scopes: all
Supported Targets: ???

count_owned_ships - Checks the country's number of ships that meet the specified criteria
count_owned_ships = { limit = { <triggers> } count < 20 }
Supported Scopes: country
Supported Targets: ???

leader_of_faction - Checks if the leader is the leader of a faction
leader_of_faction = yes
Supported Scopes: leader
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_scope_valid - Checks if the current scope is valid
is_scope_valid = yes
Supported Scopes: all
Supported Targets: none

opposing_ethics_divergence - Checks how far removed the country/pop's ethos is from target's
opposing_ethics_divergence = { steps > 1 who = <target> }
Supported Scopes: country pop
Supported Targets: ???

is_war_leader - Checks if the country leads in a war
is_war_leader = yes
Supported Scopes: country pop_faction
Supported Targets: none

is_in_federation_with - Checks if the country is in a federation with target country
is_in_federation_with = <target>
Supported Scopes: country
Supported Targets: none

can_change_policy - Checks if the country can change a specific policy
can_change_policy = slavery_not_allowed
Supported Scopes: country
Supported Targets: ???

count_pop_factions - Checks the country's number of factions that meet the criteria
count_pop_factions = { limit = { <triggers> } count < 2 }
Supported Scopes: country
Supported Targets: none

is_ironman - Check if current game is running in ironman mode
is_ironman = yes
Supported Scopes: all
Supported Targets: none

has_monthly_income - Checks the country's monthly income of a specific resource
has_monthly_income = { resource = engineering_research value < 20 }
Supported Scopes: country
Supported Targets: ???

else - Evaluates the triggers if the display_triggers of preceding 'if' or 'else_if' is not met
if = { limit = { <display_triggers> } <triggers> }
else = { <triggers> }
Supported Scopes: all
Supported Targets: none

has_policy_flag - Checks if the country has a specific policy
has_policy_flag = slavery_not_allowed
Supported Scopes: country
Supported Targets: none

count_deposits - Checks the number of deposits on the tile/planet that meet the specified criteria
count_deposits = { limit = { <triggers> count < 2 }
Supported Scopes: planet
Supported Targets: ???

has_tech_option - Checks if the country has a tech research option currently available
has_tech_option = tech_mining_network_2
Supported Scopes: country
Supported Targets: none

count_tech_options - Checks the country's number available tech research options in a specific field
count_tech_options = { area = physics count > 0 }
Supported Scopes: country
Supported Targets: ???

has_point_of_interest - Checks if the scoped country has a specific point of interest in its situation log
has_point_of_interest = { poi = <id> }
Supported Scopes: planet country ship fleet galactic_object ambient_object
Supported Targets: ???

is_being_repaired - Checks if the ship/fleet is being repaired
is_being_repaired = yes
Supported Scopes: ship fleet
Supported Targets: none

any_ambient_object - Checks if any ambient objects in the game meet the specified criteria
any_ambient_object = { <triggers> }
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

any_system_ambient_object - Checks if any ambient objects in the system meet the specified criteria
any_system_ambient_object = { <triggers> }
Supported Scopes: galactic_object
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_ambient_object_flag - Checks if the ambient object has a specific flag
has_ambient_object_flag = <flag>
Supported Scopes: ambient_object
Supported Targets: none

any_bordering_country - Iterate through all bordering countries of a system
any_bordering_country = { <count=<num/all>> <triggers> }
Supported Scopes: galactic_object
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

galaxy_percentage - Checks if the country has a specific percentage (0.00-1.00) of the galaxy within its borders
galaxy_percentage > 0.40
Supported Scopes: country
Supported Targets: ???

custom_tooltip_fail - Shows custom text only when the associated trigger fails
custom_tooltip_fail = {
text = <text>
<triggers>
}
Supported Scopes: all
Supported Targets: none

count_armies - Checks the number of armies on/in the planet/country that meet the specified criteria
count_armies = { limit = { <triggers> } count < 12 }
Supported Scopes: planet country
Supported Targets: none

is_in_combat - Checks if the ship/fleet is engaged in combat
is_in_combat = yes
Supported Scopes: ship fleet
Supported Targets: none

any_member - Checks if any members of the alliance meet the specified criteria
any_member = { <triggers> }
Supported Scopes: alliance
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_guaranteeing - Checks if the country is guaranteeing the independence of target country
is_guaranteeing = <target>
Supported Scopes: country
Supported Targets: none

is_war_participant - Checks if target country is participating in the war on the specified side
is_war_participant = { who = <target> side = <target> }
Supported Scopes: war
Supported Targets: none

is_homeworld - Checks if the planet is its owner's homeworld
is_homeworld = yes
Supported Scopes: planet
Supported Targets: none

is_friendly_to - Checks if the country has a friendly attitude towards target country
is_friendly_to = <target>
Supported Scopes: country
Supported Targets: none

is_hostile_to - Checks if the country has a hostile attitude towards target country
is_hostile_to = <target>
Supported Scopes: country
Supported Targets: none

is_protective_to - Checks if the country has a protective attitude towards target country
is_protective_to = <target>
Supported Scopes: country
Supported Targets: none

is_threatened_to - Checks if the country has a threatened attitude towards target country
is_threatened_to = <target>
Supported Scopes: country
Supported Targets: none

years_passed - Checks the number of in-game years passed since the 2200 start
years_passed < 150
Supported Scopes: all
Supported Targets: none

mid_game_years_passed - Checks the number of in-game years passed since the mid-game start date
mid_game_years_passed >= 50
Supported Scopes: all
Supported Targets: none

end_game_years_passed - Checks the number of in-game years passed since the end-game start date
end_game_years_passed >= 50
Supported Scopes: all
Supported Targets: none

is_dismissive_to - Checks if the country has a dismissive attitude towards target country
is_dismissive_to = <target>
Supported Scopes: country
Supported Targets: none

is_patronizing_to - Checks if the country has a patronizing attitude towards target country
is_patronizing_to = <target>
Supported Scopes: country
Supported Targets: none

is_angry_to - Checks if the country has an angry attitude towards target country
is_angry_to = <target>
Supported Scopes: country
Supported Targets: none

is_neighbor_of - Checks if the country/planet is neighbors with target country
is_neighbor_of = <target>
Supported Scopes: planet country ship fleet galactic_object
Supported Targets: none

is_rival - Checks if the country has a rival attitude towards target country
is_rival = <target>
Supported Scopes: country
Supported Targets: none

is_unfriendly_to - Checks if the country has an unfriendly attitude towards target country
is_unfriendly_to = <target>
Supported Scopes: country
Supported Targets: none

is_loyal_to - Checks if the country has a loyal attitude towards target country
is_loyal_to = <target>
Supported Scopes: country
Supported Targets: none

is_disloyal_to - Checks if the country has a disloyal attitude towards target country
is_disloyal_to = <target>
Supported Scopes: country
Supported Targets: none

is_cordial_to - Checks if the country has a cordial attitude towards target country
is_cordial_to = <target>
Supported Scopes: country
Supported Targets: none

is_domineering_to - Checks if the country has a domineering attitude towards target country
is_domineering_to = <target>
Supported Scopes: country
Supported Targets: none

fleet_power - Checks the scope's total fleet power
fleet_power > 2500
Supported Scopes: country fleet
Supported Targets: none

has_election_type - Checks if the country has a specific election type
has_election_type = oligarchic
Supported Scopes: country
Supported Targets: none

has_ai_personality - Checks if an AI empire has a certain personality type
has_ai_personality = fanatic_befrienders
Supported Scopes: country
Supported Targets: none

has_ai_personality_behaviour - Checks if a country has a certain AI personality behavior
has_ai_personality_behaviour = slaver
Supported Scopes: country
Supported Targets: none

has_valid_ai_personality - Checks if the country has a valid AI personality
has_valid_ai_personality = yes
Supported Scopes: country
Supported Targets: none

has_migration_access - Checks if the country has migration access to target country
has_migration_access = <target>
Supported Scopes: country
Supported Targets: none

logged_in_to_pdx_account - Checks if the local human is logged in to a Pdx account. This WILL cause an out of sync if used for anything that can change the game state
Supported Scopes: all
Supported Targets: ???

would_join_war - Checks if the country would join the side of target country in a hypothetical war
would_join_war = { attacker = <target> defender = <target> side = <target> }
Supported Scopes: country
Supported Targets: none

can_be_subject - Checks if the country can be a subject of a specific type under target country
can_be_subject = { subject_type = tributary overlord = <target> }
Supported Scopes: country
Supported Targets: ???

count_war_participants - Checks the number of participants in the war on a specific side that meet the specified criteria
count_war_participants = { limit = { <triggers> } side = target count < 4
Supported Scopes: war
Supported Targets: none

count_potential_war_participants - Checks the amount of potential war participants in a specific war that meet the specified criteria
count_potential_war_participants = { attacker = <target> defender = <target> side = <target> limit = { <triggers> } count > 2
Supported Scopes: all
Supported Targets: none

has_skill - Checks if the leader has a specific experience level
has_skill > 2
Supported Scopes: leader
Supported Targets: none

has_experience - Checks if the leader has a specific amount of experience
has_experience < 900
Supported Scopes: leader
Supported Targets: none

any_neighbor_system - Checks if any of the system's neighboring systems meet the specified criteria
any_neighbor_system = { ignore_hyperlanes = <yes/no> <triggers> }
Supported Scopes: galactic_object
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_under_colonization - Checks if the planet is being colonized
is_under_colonization = yes
Supported Scopes: planet
Supported Targets: none

has_colony_progress - Checks the planet's progress towards completing colonization
has_colony_progress > 20
Supported Scopes: planet
Supported Targets: none

distance_to_empire - Checks the ship/fleet/planet/system's galaxy map distance to target empire
distance = { who = <target> distance = x }
Supported Scopes: planet ship fleet galactic_object
Supported Targets: none

is_unemployed - Checks if the pop is unemployed
is_unemployed = yes
Supported Scopes: pop
Supported Targets: none

years_of_peace - Checks the number of in-game years country has been at peace, with optional parameter to delay from start of game
years_of_peace = { value > 10 delay = 0 }
Supported Scopes: country
Supported Targets: none

is_within_borders_of - Checks if the planet/system is within the borders of the target country
is_within_borders_of = <target>
Supported Scopes: planet galactic_object
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

num_marauder_empires_to_spawn - Checks the number of marauder empires specified by the galaxy setup
num_marauder_empires_to_spawn > 1
Supported Scopes: all
Supported Targets: none

has_species_flag - Checks if the species has a specific flag
has_species_flag = <flag>
Supported Scopes: species
Supported Targets: none

has_auto_move_target - Checks if the fleet/ship has an active auto-move target set
has_auto_move_target = yes
Supported Scopes: ship fleet
Supported Targets: none

count_system_ships - Checks the system's number of ships that meet the specified criteria
count_system_ships = { limit = { <triggers> } count < 20 }
Supported Scopes: galactic_object
Supported Targets: ???

count_starbase_modules - Checks the number of starbase modules that are of the specified type
count_starbase_modules = { type = anchorage count < 12 }
Supported Scopes: starbase
Supported Targets: none

is_belligerent_to - Checks if the country has a belligerent attitude towards target country
is_belligerent_to = <target>
Supported Scopes: country
Supported Targets: none

is_imperious_to - Checks if the country has a imperious attitude towards target country
is_imperious_to = <target>
Supported Scopes: country
Supported Targets: none

is_arrogant_to - Checks if the country has a arrogant attitude towards target country
is_arrogant_to = <target>
Supported Scopes: country
Supported Targets: none

has_association_status - Check if the country has federation association status with target country
has_association_status = <target>
Supported Scopes: country
Supported Targets: none

is_original_owner - Checks if the target country is the planet's original owner
is_original_owner = <target>
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

can_work_job - Checks if the pop can work a job
can_work_job = yes
Supported Scopes: pop
Supported Targets: none

subject_can_diplomacy - Checks if the country is allowed by its overlord to take diplomatic action towards target country
subject_can_diplomacy = <target>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_surveyed_class - Checks if the country has surveyed any planet of a specific class
has_surveyed_class = pc_tundra
Supported Scopes: country
Supported Targets: none

fleet_size - Checks the fleet's fleet size
fleet_size < 125
Supported Scopes: fleet
Supported Targets: none

host_has_dlc - Checks if the host has a specific DLC enabled
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

local_has_dlc - Checks if the local player has a specific DLC enabled
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

num_rare_techs - Checks the country's number of researched rare technologies
num_rare_techs < 4
Supported Scopes: country
Supported Targets: none

has_mandate - Checks if the leader has any, or a specific, mandate
has_mandate = no
has_mandate = mandate_shipwright
Supported Scopes: leader
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

nor - An inverted OR trigger
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

nand - An inverted AND trigger
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

num_energy - Checks the planet's total amount of energy
num_energy > 19
Supported Scopes: planet
Supported Targets: none

num_armies - Checks the country's number of armies
num_armies < 20
Supported Scopes: country
Supported Targets: ???

has_war_goal - Checks if a war goal is set.
has_war_goal = yes
Supported Scopes: all
Supported Targets: ???

max_naval_capacity - Checks the country's max naval capacity in absolute numbers
max_naval_capacity > 120
Supported Scopes: country
Supported Targets: none

used_naval_capacity_integer - Checks the country's used naval capacity in absolute numbers
used_naval_capacity_integer < 89
Supported Scopes: country
Supported Targets: none

used_naval_capacity_percent - Checks the country's used naval capacity in relative terms (0.00-1.00)
used_naval_capacity_percent < 0.75
Supported Scopes: country
Supported Targets: none

war_begun_num_fleets_gone_mia - Checks amount of target country's fleets that went MIA when the war began
war_begun_num_fleets_gone_mia = { who = <target> value < 10 }
Supported Scopes: war
Supported Targets: none

custom_tooltip_success - Shows custom text only when the associated trigger passes
custom_tooltip_success = {
text = <text>
<triggers>
}
Supported Scopes: all
Supported Targets: none

has_active_event - Checks if country has active events:
has_active_event = {
event.1
event.2
event.n
}
Supported Scopes: country
Supported Targets: none

success_text - For 'desc={trigger={' use. Shows custom text when the associated trigger passes.
success_text = {
text = <text>
<triggers>
}
Supported Scopes: all
Supported Targets: none

fail_text - For 'desc={trigger={' use. Shows custom text when the associated trigger fails.
fail_text = {
text = <text>
<triggers>
}
Supported Scopes: all
Supported Targets: none

is_subject_type - Checks if the country is a specific type of subject
is_subject_type = vassal
Supported Scopes: country
Supported Targets: none

has_defensive_pact - Checks if the country has a defensive pact with target country
has_defensive_pact = <target>
Supported Scopes: country
Supported Targets: none

calc_true_if - Returns true if the specified number of sub-triggers return true
calc_true_if = { amount = 2 <trigger> <trigger> <trigger> }
Supported Scopes: all
Supported Targets: none

is_researching_technology - Checks if the country is currently researching a specific technology
is_researching_technology = tech_gene_seed_purification
Supported Scopes: country
Supported Targets: none

is_subject - Checks if the country is a subject of any other country
is_subject = no
Supported Scopes: country
Supported Targets: none

any_subject - Checks if any of the country's subject states meet the specified criteria
any_subject = { <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

log - Prints a message to game.log for debugging purposes
log = <string>
Supported Scopes: planet country ship pop fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_enigmatic_to - Checks if the country has a enigmatic attitude towards target country
is_enigmatic_to = <target>
Supported Scopes: country
Supported Targets: none

is_berserker_to - Checks if the country has a berserker attitude towards target country
is_berserker_to = <target>
Supported Scopes: country
Supported Targets: none

has_same_ethos - Checks if a country has the same ethos (complete set of ethics) as a country or pop
has_same_ethos = <target>
Supported Scopes: country pop
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_majority_species - checks if a planet/country has a particular species as its dominant species
Supported Scopes: planet pop
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_closed_borders - Check if the country has closed its borders to target country
has_closed_borders = <target>
Supported Scopes: country
Supported Targets: none

is_difficulty - Checks the game's difficulty level (0 normal, 1 hard, 2 insane)
is_difficulty = 2
Supported Scopes: all
Supported Targets: none

is_exact_same_species - Checks if the scoped object is originally of the same species, or currently of the exact same species instance, as another object
is_exact_same_species = <target>
Supported Scopes: country ship pop leader army species
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

can_control_access_for - Checks if the country is allowed to control target country's border access to the country
can_control_access_for = <target>
Supported Scopes: country
Supported Targets: none

is_overlord_to - Checks if the country has an overlord attitude towards target country
is_overlord_to = <target>
Supported Scopes: country
Supported Targets: none

distance_to_core_percent - Checks the ship/fleet/planet/leader/pop/system's distance to the galactic core in percent, where center = 0 and galactic rim = 100
distance_to_core_percent < 60
Supported Scopes: all
Supported Targets: ???

has_non_aggression_pact - Check if the country has a non-aggression pact with target country
has_non_aggression_pact = <target>
Supported Scopes: country
Supported Targets: none

happiness_planet - Checks the average happiness on the planet
happiness_planet < 60
Supported Scopes: planet
Supported Targets: none

count_fleet_ships - Checks the number of ships in the fleet that meet the specified criteria
count_fleet_ships = { limit = { <triggers> } count > 15 }
Supported Scopes: fleet
Supported Targets: ???

pre_ruler_leader_class - Checks the rulers previous leader class
pre_ruler_leader_class = scientist
Supported Scopes: leader
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_hp_percentage - Checks a fleet or ship's hit points percentage
has_hp_percentage > 0.5
Supported Scopes: ship fleet
Supported Targets: none

can_join_factions - Checks if scoped pop can join a faction
Supported Scopes: pop
Supported Targets: ???

is_custodial_to - Checks if the country has a custodial attitude towards target country
is_custodial_to = <target>
Supported Scopes: country
Supported Targets: none

has_valid_civic - Checks if the current country has a certain civic and if its validated
has_valid_civic = my_test_civic_1
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_non_swapped_tradition - Checks if a country has the given tradition and it is not swapped.
has_non_swapped_tradition = tr_my_santa_claus_tradition
Supported Scopes: country
Supported Targets: none

has_swapped_tradition - Checks if a country has the given swapped tradition.
has_swapped_tradition = tr_my_santa_claus_tradition
Supported Scopes: country
Supported Targets: none

is_event_leader - Checks if a leader is a special event leader (defined in create_leader)
is_event_leader = no
Supported Scopes: leader
Supported Targets: ???

is_crises_allowed - Check if current game allows crises
is_crises_allowed = yes
Supported Scopes: all
Supported Targets: none

is_custom_capital_location - Checks if the spatial object is its owner's custom capital location
is_custom_capital_location = yes
Supported Scopes: planet ship fleet galactic_object
Supported Targets: ???

resource_stockpile_compare - Checks specific resource stockpile for the country scope:
resource_stockpile_compare = {
resource = <resource_name>
value ><= <value>
}

Supported Scopes: country
Supported Targets: ???

resource_income_compare - Checks specific resource income value for the country scope:
resource_income_compare = {
resource = <resource_name>
value ><= <value>
}

Supported Scopes: country
Supported Targets: ???

pop_percentage - Checks the percentage of pops in the scope that fulfill the specified criteria
pop_percentage = { percentage > 0.74 limit = { <triggers> } }
Supported Scopes: planet country pop_faction
Supported Targets: none

num_species - Checks if the number of species on a planet, in an empire or in a pop faction is according to the argument. Does not count genetically modified species as unique.
num_species > 8
Supported Scopes: planet country pop_faction
Supported Targets: none

num_unique_species - Checks if the number of species on a planet, in an empire or in a pop faction is according to the argument. Counts genetically modified species as unique.
num_unique_species < 12
Supported Scopes: planet country pop_faction
Supported Targets: none

has_diplo_migration_treaty - Checks if two countries have a migration treaty.
Supported Scopes: country
Supported Targets: none

has_presence - Checks if a system contains any fleets, stations, mega structures or colonized planets.
has_presence = yes
Supported Scopes: galactic_object
Supported Targets: none

is_megastructure_type - is_megastructure_type = <name of type>. Compares the type of scope's mega structure to a type from the database
Supported Scopes: megastructure
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_upgrading - is_upgrading = <yes/no>. Checks if the scope's fleet or mega structure is currently upgrading
Supported Scopes: megastructure fleet
Supported Targets: ???

relative_power - Compares relative power between two countries. relative_power = { who = <target country> category = <fleet/economy/technology/all> value ><= <pathetic/inferior/equivalent/superior/overwhelming>
Supported Scopes: country
Supported Targets: ???

has_tradition - Checks if a country has the given tradition.
has_tradition = tr_my_santa_claus_tradition
Supported Scopes: country
Supported Targets: none

any_relation - Iterate through all relations
any_relation = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_megastructure_flag - Checks if the mega structure has a specific flag
has_megastructure_flag = <flag>
Supported Scopes: megastructure
Supported Targets: none

has_citizenship_type - Checks if a species/pop/leader has a particular citizenship type in their country
has_citizenship_type = { country = <who> type = <type> }
Supported Scopes: pop leader species
Supported Targets: none

has_population_control - Checks if the pop is prevented from reproducing
has_population_control = yes
Supported Scopes: pop
Supported Targets: ???

has_migration_control - Checks if the pop is prevented from migrating
has_migration_control = yes
Supported Scopes: pop
Supported Targets: ???

species_planet_slave_percentage - Checks if a pop's planet has a specific percentage (0.00-1.00) of the same species enslaved
species_planet_slave_percentage > 0.40
Supported Scopes: pop
Supported Targets: ???

has_ascension_perk - Checks if a country has the given ascension perk.
has_ascension_perk = ap_my_ascension_perk
Supported Scopes: country
Supported Targets: none

num_ascension_perks - Compares the number of AP points the country has spent with the given value
num_ascension_perks > 7
Supported Scopes: country
Supported Targets: none

pop_produces_resource - Checks if a pop is currently producing a particular resource
pop_produces_resource = { type = minerals amount < 5 }
Supported Scopes: pop
Supported Targets: ???

has_military_service_type - Checks if a species/pop/leader has a particular military service type in their country
has_military_service_type = { country = <who> type = <type> }
Supported Scopes: pop leader species
Supported Targets: none

has_purge_type - Checks if a species/pop/leader has a particular purge type in their country
has_purge_type = { country = <who> type = <type> }
Supported Scopes: pop leader species
Supported Targets: none

has_slavery_type - Checks if a species/pop/leader has a particular slavery type in their country
has_slavery_type = { country = <who> type = <type> }
Supported Scopes: pop leader species
Supported Targets: none

has_living_standard - Checks if a species/pop/leader has a particular living standard in their country
has_living_standard = { country = <who> type = <type> }
Supported Scopes: pop leader species
Supported Targets: none

count_planets - Checks the planets in system that meet the criteria
count_planets = { limit = { <triggers> } count < 2 }
Supported Scopes: galactic_object
Supported Targets: none

num_ascension_perk_slots - Compares the number of unlocked ascension perk slots of the scope with the given value
num_ascension_perks > 7
Supported Scopes: country
Supported Targets: none

is_fleet_idle - Checks if the ship/fleet is idfle
is_fleet_idle = yes
Supported Scopes: ship fleet
Supported Targets: none

debug_break - Trigger an assertion to stop the debugger when encountering this trigger; returns the value it is assigned
debug_break = yes
Supported Scopes: all
Supported Targets: ???

has_civic - Checks if the current country has the specified civic
has_civic = my_test_civic_1
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_authority - Checks if the current country has the specified government authority
has_government_authority = democratic
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_invalid_civic - Checks if the current country has a certain civic and if its invalidated
has_invalid_civic = my_test_civic_1
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_colonization_control - Checks if the pop is prevented from migrating
has_colonization_control = yes
Supported Scopes: pop species
Supported Targets: none

has_trade_route - Checks if a system has trade route going through.
has_trade_route = <yes/no>
Supported Scopes: galactic_object
Supported Targets: none

trade_route_value - Checks the trade value going through the system.
trade_route_value >=< 40
Supported Scopes: galactic_object
Supported Targets: none

trade_intercepted_percentage - Checks the intercepted trade value ratio going through the system.
trade_intercepted_percentage >=< 40
Supported Scopes: galactic_object
Supported Targets: none

trade_intercepted_value - Checks the intercepted trade value going through the system.
trade_intercepted_value >=< 40
Supported Scopes: galactic_object
Supported Targets: none

trade_protected_value - Checks the protected trade value going through the system.
trade_protected_value >=< 40
Supported Scopes: galactic_object
Supported Targets: none

trade_protected_percentage - Checks the protected trade value ratio going through the system.
trade_protected_percentage >=< 40
Supported Scopes: galactic_object
Supported Targets: none

num_trade_routes - Counts the number trade routes in the empire.
num_trade_routes >=< 40
Supported Scopes: country
Supported Targets: none

count_species - Counts the number of species in the scope that fulfill the specified criteria, not counting sub-species as unique.
count_species = { count > 4 limit = { <triggers> } }
Supported Scopes: planet country
Supported Targets: none

count_exact_species - Counts the number of species in the scope that fulfill the specified criteria, counting sub-species as unique.
count_exact_species = { count > 4 limit = { <triggers> } }
Supported Scopes: planet country
Supported Targets: none

is_constructing - Checks if the scoped construction ship is building the specified thing
is_constructing = megastructure | <megastructure type> | starbase | mining_station | research_station | observation_post | <ship class>
Supported Scopes: ship fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_ruler_trait - Checks if a leader has a certain ruler trait, even if they are not currently ruler
has_ruler_trait = leader_trait_carefree
Supported Scopes: leader
Supported Targets: none

num_trait_points - Checks the country/pop/leader/species' number of traits points spent
num_traits < 3
Supported Scopes: country pop leader species
Supported Targets: none

has_component - Checks if a ship has a certain component
has_component = <component template key>
Supported Scopes: ship
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_notification_modifier - Checks if a country has a certain notification modifier
has_notification_modifier = <key>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

pop_maintenance_cost - Checks the maintenace costs of a pop
pop_maintenance_cost > 0
Supported Scopes: pop
Supported Targets: none

conditional_tooltip - The enclosed trigger will be completely ignored if the condition in "trigger" isn't true. Useful to hide part of tooltips that are not relevant.
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_natural_wormhole - Returns true if the scopes system contains at least one natural wormhole
has_natural_wormhole = yes
Supported Scopes: galactic_object
Supported Targets: none

has_claim - Checks if the country has claims on the given country or system.
has_claim = <country|system>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

num_active_gateways - Checks the number of active gateways in the galaxy
num_active_gateways < 3
Supported Scopes: all
Supported Targets: none

attacker_war_exhaustion - Checks the war exhaustion of the war's attackers
attacker_exhaustion_score > 60
Supported Scopes: war
Supported Targets: ???

defender_war_exhaustion - Checks the war exhaustion of the war's defenders
defender_war_exhaustion < 20
Supported Scopes: war
Supported Targets: ???

off_war_exhaustion_sum - Checks the country's total war exhaustion for all offensive wars
off_war_exhaustion_sum < 10
Supported Scopes: country
Supported Targets: ???

def_war_exhaustion_sum - Checks the country's total war exhaustion for all defemsove wars
def_war_exhaustion_sum > 75
Supported Scopes: country
Supported Targets: ???

has_starbase_module - Checks if the starbase has a specific module
has_starbase_module = <starbase module>
Supported Scopes: starbase
Supported Targets: none

has_starbase_building - Checks if the starbase has a specific building
has_starbase_building = <starbase building>
Supported Scopes: starbase
Supported Targets: none

has_starbase_size - Compares the starbase ship size
has_starbase_size >= <starbase ship size>
Supported Scopes: starbase
Supported Targets: none

has_seen_any_bypass - Checks the scoped country has ever encountered a bypass of a given type before
has_seen_any_bypass = bypass_type
Supported Scopes: country
Supported Targets: none

has_seen_specific_bypass - Checks the scoped country has encountered a specific bypass before
has_seen_specific_bypass = ROOT
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

owns_any_bypass - Checks if the scoped country controls any system containing a bypass of a specific type
owns_any_bypass = bypass_type
Supported Scopes: country
Supported Targets: ???

has_casus_belli - Checks if the country has a valid casus belli (any casus belli or a specific one) on the given country.
has_casus_belli = {
target = <country>
type = <cb_type> #optional
}
Supported Scopes: country
Supported Targets: THIS

num_starbases - Counts the number of starbases owned by the scoped country
num_starbases >= 1
Supported Scopes: country
Supported Targets: ???

num_owned_active_gateways - Checks the number of active gateways owned by the scoped country
num_owned_active_gateways < 3
Supported Scopes: country
Supported Targets: none

using_war_goal - Checks if a war has a specific war goal
using_war_goal = { type = <war goal> owner = <eventtarget, country> }
Supported Scopes: war
Supported Targets: none

has_status - Checks the current status of the scoped ship or fleet.
has_status = <colossus status> #charging/firing
Supported Scopes: ship fleet
Supported Targets: none

valid_planet_killer_target - Checks if the scoped fleet can target the given planet with its planet killer weapon
valid_planet_killer_target = <planet>
Supported Scopes: fleet
Supported Targets: none

has_orbital_bombardment - Checks whether a planet is under bombardment
has_orbital_bombardment = yes
Supported Scopes: planet
Supported Targets: none

has_orbital_bombardment_stance - Checks to what degree the planet is being bombarded
has_orbital_bombardment_stance = selective
Supported Scopes: planet
Supported Targets: none

count_starbase_sizes - Checks if the scoped country has a specified quantity of a starbase size
count_starbase_sizes = {
starbase_size = <starbase_ship_size>
count >= 2}
Supported Scopes: country
Supported Targets: none

command_limit - Checks the country's command limit
command_limit > 120
Supported Scopes: country
Supported Targets: none

has_hyperlane_to - Checks if the system has a hyperlane connection to target system
has_hyperlane_to = <target>
Supported Scopes: galactic_object
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_bridge - Checks if a system has the bridge flag or not.
is_bridge = <yes/no>
Supported Scopes: galactic_object
Supported Targets: none

inverted_switch - Switch case for a trigger treated as NOT.
inverted_switch = {
trigger = pop_has_ethic
ethic_xenophile = { <trigger> }
ethic_xenophobe = { <trigger> }
default = { <trigger> }
}
Supported Scopes: all
Supported Targets: ???

is_scope_set - Checks if the scope is set for appropriate target
is_scope_set = <target>
Supported Scopes: planet country ship pop fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

is_primary_star - Checks if the planet is the system's primary star
is_primary_star = yes
Supported Scopes: planet
Supported Targets: none

last_changed_species_rights_type - Check if the last species rights type changed for the pop or leader is of type type
last_changed_species_rights_type = <living_standard/citizenship/military_service/slavery/purge/colonization_control/population_control/migration_control/none>
Supported Scopes: pop leader
Supported Targets: none

controlled_systems - Checks the country's number of controlled systems
controlled_systems < 3
Supported Scopes: country
Supported Targets: none

exploitable_planets - Checks the country has planets that are unexploited
exploitable_planets < 3
Supported Scopes: country
Supported Targets: none

controlled_colonizable - Checks the country controls planets that are colonizable
controlled_colonizable > 0
Supported Scopes: country
Supported Targets: none

ai_colonize_plans - Checks how many plans the AI have for colonization (lighter than controlled_colonizable for AI)
ai_colonize_plans > 0
Supported Scopes: country
Supported Targets: none

scientist_count - Checks the countrys' number of scientists
scientist_count < 4
Supported Scopes: country
Supported Targets: none

has_ai_expansion_plan - Checks if the country AI has any plans to expand
has_ai_expansion_plan = no
Supported Scopes: country
Supported Targets: none

is_on_market - Checks if resource is enabled on the Galactic Market
is_on_market = <resource_name>
Supported Scopes: all
Supported Targets: none

highest_threat - Checks the countrys' highest threat against it
highest_threat > 100
Supported Scopes: country
Supported Targets: none

has_rival - Checks if the target country is the country's rival
has_rival = <target>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_overlord - Checks if the target country is the country's overlord
has_overlordo = <target>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

has_sector_type - Checks if the sector has a specific type
has_sector_type = <sector type>
Supported Scopes: sector (unknown)
Supported Targets: none

num_sectors - Counts the number of sectors owned by the scoped country
num_sectors >= 1
Supported Scopes: country
Supported Targets: none

any_owned_army - Iterate through each army that is owned by the country
any_owned_army = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_owned_army - Iterate through each army that is owned by the country
count_owned_army = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: none

any_planet_army - Iterate through each defending army on a planet
any_planet_army = { <count=<num/all>> <triggers> }
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_planet_army - Iterate through each defending army on a planet
count_planet_army = { <count=<num/all>> <triggers> }
Supported Scopes: planet
Supported Targets: none

count_country - Iterate through all countries
count_country = { <count=<num/all>> <triggers> }
Supported Scopes: all
Supported Targets: none

count_relation - Iterate through all relations
count_relation = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: none

any_neighbor_country - Iterate through all neighbor countries
any_neighbor_country = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_neighbor_country - Iterate through all neighbor countries
count_neighbor_country = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: none

count_bordering_country - Iterate through all bordering countries of a system
count_bordering_country = { <count=<num/all>> <triggers> }
Supported Scopes: galactic_object
Supported Targets: none

any_combatant_fleet - Iterate through each fleet this fleet is in combat with
any_combatant_fleet = { <count=<num/all>> <triggers> }
Supported Scopes: fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_combatant_fleet - Iterate through each fleet this fleet is in combat with
count_combatant_fleet = { <count=<num/all>> <triggers> }
Supported Scopes: fleet
Supported Targets: none

any_pool_leader - Iterate through each leader that is recruitable for the country
any_pool_leader = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_pool_leader - Iterate through each leader that is recruitable for the country
count_pool_leader = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: none

any_megastructure - Iterate through each megastructure
any_megastructure = { <count=<num/all>> <triggers> }
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_megastructure - Iterate through each megastructure
count_megastructure = { <count=<num/all>> <triggers> }
Supported Scopes: all
Supported Targets: none

any_owned_megastructure - Iterate through each owned megastructure
any_owned_megastructure = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_owned_megastructure - Iterate through each owned megastructure
count_owned_megastructure = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: none

any_system_megastructure - Iterate through each megastructure in system
any_system_megastructure = { <count=<num/all>> <triggers> }
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_system_megastructure - Iterate through each megastructure in system
count_system_megastructure = { <count=<num/all>> <triggers> }
Supported Scopes: all
Supported Targets: none

count_owned_pop - Iterate through all owned pops
count_owned_pop = { <count=<num/all>> <triggers> }
Supported Scopes: planet country pop_faction
Supported Targets: none

any_owned_pop_species - Iterate through each species of a country's owned pops
any_owned_pop_species = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_owned_pop_species - Iterate through each species of a country's owned pops
count_owned_pop_species = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: none

any_owned_starbase - Iterate through every owned starbase
any_owned_starbase = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_owned_starbase - Iterate through every owned starbase
count_owned_starbase = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: none

any_system - Iterate through all systems
any_system = { <count=<num/all>> <triggers> }
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_system - Iterate through all systems
count_system = { <count=<num/all>> <triggers> }
Supported Scopes: all
Supported Targets: none

count_rim_system - Iterate through all rim systems
count_rim_system = { <count=<num/all>> <triggers> }
Supported Scopes: all
Supported Targets: none

any_system_within_border - Iterate through all systems within the country's borders
any_system_within_border = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_system_within_border - Iterate through all systems within the country's borders
count_system_within_border = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: none

any_war_participant - Iterate through all war participants
any_war_participant = { <count=<num/all>> <triggers> }
Supported Scopes: war
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_war_participant - Iterate through all war participants
count_war_participant = { <count=<num/all>> <triggers> }
Supported Scopes: war
Supported Targets: none

any_sector - Iterate through all sectors
any_sector = { <count=<num/all>> <triggers> }
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_sector - Iterate through all sectors
count_sector = { <count=<num/all>> <triggers> }
Supported Scopes: all
Supported Targets: none

any_owned_sector - Iterate through every owned sector
any_owned_sector = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

count_owned_sector - Iterate through every owned sector
count_owned_sector = { <count=<num/all>> <triggers> }
Supported Scopes: country
Supported Targets: none


=================
[12:53:27][consolecmdimpl.cpp:2652]:
== EFFECT DOCUMENTATION ==
tooltip - Just a tooltip
Supported Scopes: planet country ship pop
Supported Targets: ???

hidden_effect - Prevents enclosed effects from being displayed in tooltip
hidden_effect = { <effects> }
Supported Scopes: all
Supported Targets: none

custom_tooltip - Displays a specific localization string in tooltip
custom_tooltip = <string>
Supported Scopes: all
Supported Targets: none

if - Executes enclosed effects if limit criteria are met
if = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

random_list - Picks one random set of effects from a list, influenced by relative weight
random_list = { 50 = { <effects> } 20 = { <effects> } 30 = { <effects> } 999 = { <effects> } }
Supported Scopes: all
Supported Targets: none

every_owned_planet - Executes enclosed effects on every planet -owned by the scoped country- that meet the limit criteria
every_owned_planet = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_owned_planet - Executes enclosed effects on a planet -owned by the scoped country- that meets the limit criteria
random_owned_planet = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

every_controlled_planet - Executes enclosed effects on every planet -controlled by the scoped country- that meet the limit criteria
every_controlled_planet = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_controlled_planet - Executes enclosed effects on a random planet -owned by the scoped country- that meets the limit criteria
random_controlled_planet = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

remove_deposit - Remove resource deposit on the scoped planet or deposit, does not fire on_cleared if used on a blocker
add_deposit = <key/yes>
Supported Scopes: planet deposit
Supported Targets: none

set_owner - Instantly sets the owner of the scoped planet/fleet/army/starbase to target country
set_owner = <target>
Supported Scopes: planet fleet army starbase
Supported Targets: none

unemploy_pop - Fires scoped pop from its job
unemploy_pop = yes
Supported Scopes: pop
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

check_planet_employment - Immediately runs a job evaluation on the planet, firing and employing pops as needed
check_planet_employment = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

change_species_portrait - Changes the portrait of the species in scope.
change_species_portrait = <key or species event target>
Supported Scopes: species
Supported Targets: none

every_war_defender - Executes enclosed effects on every defender that meets the limit criteria in the scoped country's war with a specific enemy
every_war_defender = { enemy = <target> limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

clear_pop_category - Resets category of a pop
clear_pop_category = yes
Supported Scopes: pop
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

every_war_attacker - Executes enclosed effects on every attacker that meets the limit criteria in the scoped country's war with a specific enemy
every_war_attacker = { enemy = <target> limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_war_defender - Executes enclosed effects on a random defender that meets the limit criteria in the scoped country's war with a specific enemy
random_war_defender = { enemy = <target> limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

add_random_non_blocker_deposit - Adds random non-blocker resource deposit to the scoped planet
add_random_non_blocker_deposit = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

random_war_attacker - Executes enclosed effects on a random attacker that meets the limit criteria in the scoped country's war with a specific enemy
random_war_attacker = { enemy = <target> limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

remove_last_built_building - Removes last built building from the scoped planet
remove_last_built_building = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

remove_all_buildings - Removes all buildings from the scoped planet
remove_all_buildings = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

give_technology - Instantly gives a specific tech to the scoped country
give_technology = { tech = tech_desert_colonization message = yes }
Supported Scopes: country
Supported Targets: none

add_building - Begins construction of a specific building on the scoped tile
add_building = <key>
Supported Scopes: planet
Supported Targets: none

add_planet_devastation - Instantly adds devastation to scoped planet
add_planet_devastation = 5
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

create_half_species - Creates a new pop from a half-species on the planet
create_half_species = { species_one = <target> species_two = <target> }
Supported Scopes: all
Supported Targets: none

calculate_modifier - Forces target planet or country to calculate its internal modifier
calculate_modifier = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

establish_branch_office - Establish branch office on scoped planet for target country
establish_branch_office = <target>
Supported Scopes: planet
Supported Targets: none

close_branch_office - Close branch office on scoped planet
close_branch_office = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

clear_blockers - Removes all blockers from the scoped planet
clear_blockers = yes
Supported Scopes: planet
Supported Targets: none

set_built_species - Changes the built species of the scoped object
set_built_species = <target>
Supported Scopes: country
Supported Targets: none

set_country_flag - Sets an arbitrarily-named flag on the scoped country
set_country_flag = <key>
Supported Scopes: country
Supported Targets: none

set_planet_flag - Sets an arbitrarily-named flag on the scoped planet
set_planet_flag = <key>
Supported Scopes: planet
Supported Targets: none

set_fleet_flag - Sets an arbitrarily-named flag on the scoped fleet
set_fleet_flag = <key>
Supported Scopes: fleet
Supported Targets: none

set_ship_flag - Sets an arbitrarily-named flag on the scoped ship
set_ship_flag = <key>
Supported Scopes: ship
Supported Targets: none

remove_country_flag - Removes a flag from the scoped country
remove_country_flag = <key>
Supported Scopes: country
Supported Targets: none

remove_planet_flag - Removes a flag from the scoped planet
remove_planet_flag = <key>
Supported Scopes: planet
Supported Targets: none

remove_fleet_flag - Removes a flag from the scoped fleet
remove_fleet_flag = <key>
Supported Scopes: fleet
Supported Targets: none

remove_ship_flag - Removes a flag from the scoped ship
remove_ship_flag = <key>
Supported Scopes: ship
Supported Targets: none

every_owned_ship - Executes enclosed effects on every ship -owned by the scoped country- that meet the limit criteria
every_owned_ship = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_owned_ship - Executes enclosed effects on a random ship -owned by the scoped country/fleet- that meets the limit criteria
random_owned_ship = { limit = { <triggers> } <effects> }
Supported Scopes: country fleet
Supported Targets: none

create_species - Creates a new species
create_species = {
name = <string>
plural = <string>
class = <species class key>
portrait = <random/portrait id>
homeworld = <target>
traits = { <specific/random traits> }
sapient = <Y/N, determines if species is pre-sapient>
is_mod = <Y/N, determines if species is a modification of another>
immortal = <Y/N, determines if species leaders are immortal>
}
Supported Scopes: all
Supported Targets: none

create_country - Creates a new country
create_country = {
name = <string/random>
type = <key>
auto_delete = <bool>
name_list = <key>
ship_prefix = <string>
authority = <key>
civics = random / { civic = <key> civic = random }
species = <target>
flag = <random / { icon = { category = <key> file = <filename.dds> } background = { category = <key> file = <filename.dds> } colors = { <key> <key> } }
ethos = <random / { ethic = <key> ethic = <key> }>
effect = { <effects executed on country> }
}
Supported Scopes: all
Supported Targets: none

create_fleet - Creates a new fleet
create_fleet = { name = <string> effect = { <create_ship, set_owner, set_location etc effects go here> } }
Supported Scopes: all
Supported Targets: none

create_army - Creates a new army
create_army = {
name = <string>
owner = <target>
species = <target>
type = <key>
}
Supported Scopes: planet
Supported Targets: none

modify_army - Modifies army with parameters:
modify_army = {
name = <string>
owner = <target>
species = <target>
type = <key>
}
Supported Scopes: army
Supported Targets: none

set_location - Sets the fleet/ambient object's location, can be fine-tuned
set_location = <target>
set_location = {
target = <target>
distance = <int/random>
angle = <int/random>
direction = <in_system/out_system>
}
Supported Scopes: fleet ambient_object
Supported Targets: none

create_ship - Creates a new ship
create_ship = {
name = <string/random>
design = <ship design key/target, or use random_existing_design>
random_existing_design = <ship size key>
graphical_culture = <graphical culture key>
prefix = <Y/N, determines if ship name should use owner country prefix>
colonizer_species = <species, default: fleet owner founder species>
}
Supported Scopes: fleet starbase
Supported Targets: none

set_primitive - [DEPRECATED, USE SET_COUNTRY_TYPE] Sets the scoped country as primitive
set_primitive = yes
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

create_pop - Creates a new pop on the scoped planet
create_pop = {
species = <target / key>
ethos = <random / target / { ethic = <key> ethic = <key> }>
}
Supported Scopes: planet
Supported Targets: none

create_colony - Creates a colony on the scoped planet
create_colony_effect = {
owner = <target>
species = <target / key>
ethos = <random / target / { ethic = <key> ethic = <key> }>
}
Supported Scopes: planet
Supported Targets: none

set_capital - Sets the scoped planet to be the capital of its owner country
set_capital = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

change_pc - Changes the class of the scoped planet
change_pc = <class/random list>
change_pc = { class = <class/random list> inherit_entity = yes }
Supported Scopes: planet
Supported Targets: none

random_country - Iterate through all countries
random_country = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

random_pop - Executes enclosed effects on a random pop that meets the limit criteria
random_pop = { limit = { <triggers> } <effects> }
Supported Scopes: planet
Supported Targets: none

kill_pop - Instantly destroys the scoped pop
kill_pop = yes
Supported Scopes: pop
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

destroy_colony - Destroys the colony on the scoped planet
destroy_colony = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

add_experience - Adds a sum of experience points to the scoped leader
add_experience = 200
Supported Scopes: leader
Supported Targets: none

set_ring - Adds or removes a planetary ring around the scoped planet
set_ring = no
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

create_mining_station - Creates a mining station in orbit of the scoped planet
create_mining_station = { owner = <target> }
Supported Scopes: planet
Supported Targets: none

create_research_station - Creates a research station in orbit of the scoped planet
create_research_station = { owner = <target> }
Supported Scopes: planet
Supported Targets: none

set_pop_flag - Sets an arbitrarily-named flag on the scoped country
set_country_flag = <key>
Supported Scopes: pop
Supported Targets: none

remove_pop_flag - Removes a flag from the scoped pop
remove_fleet_flag = <key>
Supported Scopes: pop
Supported Targets: none

every_owned_pop - Iterate through all owned pops
every_owned_pop = { limit = { <triggers> } <effects> }
Supported Scopes: planet country pop_faction
Supported Targets: none

set_name - Sets the name of the scoped country/planet/ship/fleet/leader/army/system/pop faction
set_name = <string>
Supported Scopes: megastructure planet country ship fleet galactic_object leader army pop_faction
Supported Targets: none

random_planet - Executes enclosed effects on a random planet that meets the limit criteria
random_planet = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

add_modifier - Adds a specific modifier to the scoped planet/pop/country/fleet/ship/pop/system/faction for a set duration
add_modifier = { modifier = <key> days = <int, -1 means it never expires> }
Supported Scopes: megastructure planet country ship pop fleet galactic_object pop_faction
Supported Targets: none

reduce_hp - Reduces the hull points of the scoped ship by a specific amount
reduce_hp = 120
Supported Scopes: ship
Supported Targets: none

reduce_hp_percent - Reduces the hull points of the scoped ship by a relative amount
reduce_hp_percent = 0.25
Supported Scopes: ship
Supported Targets: none

repair_ship - Restores all hull points to the scoped ship
repair_ship = yes
Supported Scopes: ship
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

destroy_country - Destroys the scoped country
destroy_country = yes
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_variable - Sets or creates an arbitrarily-named variable with a specific value in the current scope
set_variable = { which = <string> value = <int> }
Supported Scopes: all
Supported Targets: none

remove_global_flag - Removes a global flag
remove_global_flag = <key>
Supported Scopes: all
Supported Targets: none

set_global_flag - Sets an arbitrarily-named global flag
set_global_flag = <key>
Supported Scopes: all
Supported Targets: none

change_variable - Increments a previously-set variable by a specific amount
change_variable = { which = <string> = value = <int> }
Supported Scopes: all
Supported Targets: none

every_pop - Executes enclosed effects for every pop in the game that meet the limit criteria
every_pop = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

every_country - Iterate through all countries
every_country = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

every_playable_country - switches Scope to and goes through all playable countries
Supported Scopes: all
Supported Targets: none

random_playable_country - Scopes to a random playable country
Supported Scopes: all
Supported Targets: none

every_ship - Executes enclosed effects for every ship in the game that meet the limit criteria
every_ship = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

every_planet - Executes enclosed effects for every planet in the game that meet the limit criteria
every_planet = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

set_event_locked - Silently disables the scoped fleet to prevent player action, remember to unlock at the end of the event
set_event_locked = no
Supported Scopes: fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

clear_orders - Clears all fleet orders from the scoped fleet
clear_order = yes
Supported Scopes: fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

order_forced_return - Forces scoped fleet to retreat to friendly territory
order_forced_return = yes
Supported Scopes: fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

declare_war - Declares war between the scoped country and target country
declare_war = {
target = <target country>
name = <optional war name>
attacker_war_goal = <war goal>
}
Supported Scopes: country
Supported Targets: none

set_star_flag - Sets an arbitrarily-named flag on the scoped system
set_star_flag = <key>
Supported Scopes: galactic_object
Supported Targets: none

remove_star_flag - Removes a flag from the scoped system
remove_star_flag = <key>
Supported Scopes: galactic_object
Supported Targets: none

set_spawn_system_batch - Optimizes the calls for spawn_system effect.
Spawn system should be located in a block between Begin and End.
Begin: set_spawn_system_batch = begin
End: set_spawn_system_batch = end
Supported Scopes: all
Supported Targets: none

spawn_system - Spawns a new system at a position relative to the scoped system/planet/ship.
spawn_system = { min_distance = <int 0-100> max_distance = <int 0-100> initializer = <key for pre-defined system> hyperlane=<yes/no> is_discovered=<yes/no>}
Supported Scopes: planet ship galactic_object no_scope
Supported Targets: none

random_research_station - Executes enclosed effects on a random orbital research station that meets the limit criteria
random_research_station = { limit = { <triggers> } <effects> }
Supported Scopes: planet
Supported Targets: ???

dismantle - Dismantles the scoped orbital station (fleet)
dismantle = yes
Supported Scopes: fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

random_mining_station - Executes enclosed effects on a random orbital mining station that meets the limit criteria
random_research_station = { limit = { <triggers> } <effects> }
Supported Scopes: planet
Supported Targets: ???

set_advisor_active - Enables or disables the VIR window pop-in
set_advisor_active = no
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

save_event_target_as - Saves the current scope as an arbitrarily-named target to be referenced later in the (unbroken) event chain
save_event_target_as = <string>
Supported Scopes: all
Supported Targets: none

save_global_event_target_as - Saves the current scope as an arbitrarily-named target to be referenced later, accessible globally until cleared
save_event_target_as = <string>
Supported Scopes: all
Supported Targets: none

clear_global_event_target - Deletes the specified saved global target reference
clear_global_event_target = <string>
Supported Scopes: all
Supported Targets: none

clear_global_event_targets - Deletes all saved global target references
clear_global_event_targets = yes
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

break - Prevents execution of subsequent effects in the same effect block, used with if-statements
break = yes
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_tutorial_level - Changes the scoped country's tutorial level (0 none, 1 limited, 2 full)
set_tutorial_level = 0
Supported Scopes: country
Supported Targets: none

begin_event_chain - Starts a situation log event chain for target country
begin_event_chain = { event_chain = <key> target = <target> }
Supported Scopes: all
Supported Targets: none

end_event_chain - Ends a specific situation log event chain for the scoped country
end_event_chain = <key>
Supported Scopes: country
Supported Targets: none

queue_actions - Adds actions to the scoped fleet's action queue
queue_actions = { repeat = { <fleet actions> } }
Supported Scopes: fleet
Supported Targets: none

clear_fleet_actions - Clears all queued fleet actions for target fleet
clear_fleet_actions = <target>
Supported Scopes: fleet
Supported Targets: none

destroy_fleet - Destroys the target fleet (with death graphics)
destroy_fleet = <target>
destroy_fleet = {
target=<target>
kill_leader=<yes/no> #default yes
destroy_template=<yes/no> #default no
}
Supported Scopes: all
Supported Targets: none

create_ambient_object - Creates a new ambient object
create_ambient_object = { type = <key> location = <target> }
For VFX use:
create_ambient_object = {
type = <key>
scale = <float>
location = <target>
use_3d_location = <bool, use 3D entity or 2D coordinate of the location entity as base>
entity_offset = {
min = <int>
max = <int>
}
entity_offset_angle = {
min = <int>
max = <int>
}
entity_offset_height = {
min = <int>
max = <int>
}
entity_face_object = star/FROM/etc
entity_scale_to_size = yes/no
target = <target>
duration = <int, days>
}
Supported Scopes: all
Supported Targets: none

destroy_ambient_object - Destroys target ambient object
destroy_ambient_object = <target>
Supported Scopes: all
Supported Targets: none

add_trait - Adds a specific trait to the scoped leader
add_trait = <trait>
Supported Scopes: leader
Supported Targets: none

remove_trait - Removes a specific trait from the scoped leader
remove_trait = <key>
Supported Scopes: leader
Supported Targets: none

modify_species - Creates a new, modified species based on an already-extant species
modify_species = {
species = <target> # species to modify
base = <target>/auto/none # new base species; default: auto (uses species)
add_trait = <key> # optional, can specify multiple
remove_trait = <key> # optional, can specify multiple
ideal_planet_class = <target or pc_name> # optional
change_scoped_species = yes/no # modify scoped pops/planet/leader/country; default: yes
portrait = <target or portrait name> # optional
}
Supported Scopes: planet country pop leader
Supported Targets: none

add_opinion_modifier - Adds a specific opinion modifier for the scoped country towards target country
add_opinion_modifier = { modifier = <key> who = <target> }
Supported Scopes: country
Supported Targets: none

establish_contact - Establishes first contact between the scoped country and target country at the set location
establish_contact = { who = <target> location = <target> }
Supported Scopes: country
Supported Targets: none

set_faction_hostility - Sets the aggro state of the scoped faction-type country
set_faction_hostility = { target = country set_hostile = yes set_neutral = no set_friendly = no }
Supported Scopes: country
Supported Targets: none

set_market_leader - Set scoped country as the current Galactic Market leader. set_market_leader = <yes/no>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

random_system_planet - Executes enclosed effects on a random planet within the scoped system that meets the limit criteria
random_system_planet = { limit = { <triggers> } <effects> }
Supported Scopes: galactic_object
Supported Targets: none

add_event_chain_counter - Increments (or decrements with negative values) an event chain counter for the scoped country by a specific amount
add_event_chain_counter = { event_chain = <key> counter = <key> amount = <int> }

Supported Scopes: country
Supported Targets: none

add_anomaly - Adds a specific anomaly category to the scoped planet
add_anomaly = <key>
Supported Scopes: all
Supported Targets: none

set_disable_at_health - Sets the scoped ship to become disabled at a certain hull point percentage
set_disable_at_health = <0-1 float>
Supported Scopes: ship
Supported Targets: none

remove_building - Removes a specific building from the scoped planet
remove_building = <key>
Supported Scopes: planet
Supported Targets: none

change_planet_size - Adds/Removes tiles to/from the scoped planet to adjust its planet size
change_planet_size = <+/- int>
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

every_deposit - Executes on every deposit on planet
Supported Scopes: planet
Supported Targets: none

random_deposit - Executes enclosed effects on a random deposit on the scoped planet that meets the limit criteria
random_deposit = { limit = { <triggers> } <effects> }
Supported Scopes: planet
Supported Targets: none

create_point_of_interest - Creates a point of interest for the scoped country at a specific location, associated with an event chain
create_point_of_interest = { id = <key> name = <string> desc = <string> event_chain = <key> location = <target> }
Supported Scopes: planet country ship pop
Supported Targets: none

remove_point_of_interest - Removes a specific point of interest from the scoped country's situation log
remove_point_of_interest = <key>
Supported Scopes: country
Supported Targets: none

set_relation_flag - Sets a relation flag for the scoped country towards target country
set_relation_flag = { who = <target> flag = <key> }
Supported Scopes: country
Supported Targets: none

remove_relation_flag - Removes a specific relation flag towards target country from the scoped country
remove_relation_flag = { who = <target> flag = <key> }
Supported Scopes: country
Supported Targets: none

random_moon - Executes enclosed effects on a random moon that meets the limit criteria
random_moon = { limit = { <triggers> } <effects> }
Supported Scopes: planet
Supported Targets: none

every_moon - Executes enclosed effects on every moon that meets the limit criteria
every_moon = { limit = { <triggers> } <effects> }
Supported Scopes: planet
Supported Targets: none

kill_leader - Kills the scoped leader or leader of the scoped country/fleet/ship/planet/army
kill_leader = { type = general type = scientist etc. }
kill_leader = { type = <key, optional, if left out will kill scoped leader> show_notification = <yes/no> heir = <yes, optional, if added to type = ruler, will kill heir instead> }
Supported Scopes: planet country ship fleet leader army
Supported Targets: none

assign_leader - Assigns target leader to the scoped country/fleet/army/pop faction
assign_leader = <target>
Supported Scopes: country fleet army pop_faction
Supported Targets: none

country_add_ethic - Adds a specific ethic to the scoped country
country_add_ethic = <key>
Supported Scopes: country
Supported Targets: none

country_remove_ethic - Removes a specific ethic from the scoped country
country_remove_ethic = <key>
Supported Scopes: country
Supported Targets: none

set_timed_country_flag - Sets an arbitrarily-named flag on the scoped country for a set duration
set_timed_country_flag = { flag = <key> days = <int> }
Supported Scopes: country
Supported Targets: none

set_timed_fleet_flag - Sets an arbitrarily-named flag on the scoped fleet for a set duration
set_timed_fleet_flag = { flag = <key> days = <int> }
Supported Scopes: fleet
Supported Targets: none

set_timed_global_flag - Sets an arbitrarily-named global flag for a set duration
set_timed_global_flag = { flag = <key> days = <int> }
Supported Scopes: all
Supported Targets: none

set_timed_planet_flag - Sets an arbitrarily-named flag on the scoped planet for a set duration
set_timed_planet_flag = { flag = <key> days = <int> }
Supported Scopes: planet
Supported Targets: none

set_timed_pop_flag - Sets an arbitrarily-named flag on the scoped pop for a set duration
set_timed_pop_flag = { flag = <key> days = <int> }
Supported Scopes: pop
Supported Targets: none

set_timed_relation_flag - Sets an arbitrarily-named flag for the scoped country towards target country for a set duration
set_timed_relation_flag = { flag = <key> who = <target> days = <int> }
Supported Scopes: country
Supported Targets: none

set_timed_ship_flag - Sets an arbitrarily-named flag on the scoped ship for a set duration
set_timed_ship_flag = { flag = <key> days = <int> }
Supported Scopes: ship
Supported Targets: none

set_timed_star_flag - Sets an arbitrarily-named flag on the scoped system for a set duration
set_timed_system_flag = { flag = <key> days = <int> }
Supported Scopes: galactic_object
Supported Targets: none

every_planet_within_border - Executes enclosed effects on every planet within the scoped country's borders that meet the limit criteria
every_planet_within_border = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

every_rim_system - Iterate through all rim systems
every_rim_system = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

random_rim_system - Iterate through all rim systems
random_rim_system = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

remove_modifier - Removes a specific modifier from the scopes planet/country/pop/system
remove_modifier = <key>
Supported Scopes: megastructure planet country ship pop fleet galactic_object pop_faction
Supported Targets: none

add_ship_design - Adds a specific ship design to the scoped country
add_ship_design = <target>
Supported Scopes: country
Supported Targets: none

add_mission_progress - Adds or subtracts progress to/from the scoped observation post's current mission
add_mission_progress = <+/- float>
Supported Scopes: fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

create_army_transport - Creates a new army in a new transport ship
create_army_transport = {
ship_name = <string>
graphical_culture = <key>
army_name = <string>
army_type = <key>
species = <target>
}
Supported Scopes: fleet
Supported Targets: none

switch - Executes the first appropriate effect set for a specific trigger
switch = {
trigger = <trigger>
<corresponding key/bool/int> = { <effect> }
<corresponding key/bool/int> > (less/greater than appear 'reversed') { <effect> }
default = { <effect> }
}
Supported Scopes: all
Supported Targets: none

set_pop_faction - Sets the scoped pop to belong to a specific pop faction
set_pop_faction = <target>
Supported Scopes: pop
Supported Targets: none

set_graphical_culture - Sets the scoped object's graphical culture
set_graphical_culture = <key>
Supported Scopes: megastructure country
Supported Targets: none

set_formation_scale - Scales the scoped fleet's formation's ship spacing, above and below 1.0
set_formation_scale = <float>
Supported Scopes: fleet
Supported Targets: none

set_controller - Instantly sets the planet/fleet's controller to target country
set_controller = <target>
Supported Scopes: planet fleet
Supported Targets: none

force_faction_evaluation - Forces target pop to immediately evaluate their attraction to various pop factions
force_faction_evaluation = yes
Supported Scopes: pop
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

enable_faction_of_type - Forces scoped country to evaluate whether to create a specific faction type immediately, rather than monthly
enable_faction_of_type = <key>
Supported Scopes: country
Supported Targets: none

clear_uncharted_space - Clears uncharted space from the galaxy map for the scoped country, in a radius around target system
clear_uncharted_space = { from = <target> }
Supported Scopes: country
Supported Targets: none

every_owned_leader - Executes enclosed effects on every leader owned by scoped country that meets the limit criteria
every_owned_leader = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_owned_leader - Executes enclosed effects on a random leader owned by scoped country that meets the limit criteria
random_owned_leader = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

establish_communications - Establish communications between scoped country and target country
establish_communications = <target>
Supported Scopes: country
Supported Targets: none

add_monthly_resource_mult - Adds a lump sum of a resource to the scoped country, defined as a multiple of the country's monthly income of that resource (clamped to max and min allowed values)
add_monthly_resource_mult = { resource = <key> value = <multiplier, float> max = <max cap, int> min = <min cap, int> }
Supported Scopes: country
Supported Targets: none

set_leader_flag - Sets an arbitrarily-named flag on the scoped leader
set_leader_flag = <key>
Supported Scopes: leader
Supported Targets: none

remove_leader_flag - Removes a flag from the scoped leader
remove_leader_flag = <key>
Supported Scopes: leader
Supported Targets: none

add_research_option - Adds a tech research option to the scoped country's tech view list, permanent until researched
add_research_option = <key>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_heir - Sets the target leader to be the scoped country's heir
set_heir = <target>
Supported Scopes: country
Supported Targets: none

leave_alliance - Removes scoped country from any alliances it is in
leave_alliance = { override_requirements = yes/no }
Supported Scopes: country
Supported Targets: none

random_owned_pop - Iterate through all owned pops
random_owned_pop = { limit = { <triggers> } <effects> }
Supported Scopes: planet country pop_faction
Supported Targets: none

set_policy - Sets a policy to a specific option for the scoped country and specifies if policy cooldown should go into effect
set_policy = { policy = <key> option = <key> cooldown = <bool> }
Supported Scopes: all
Supported Targets: none

recruitable - Sets scoped leader as non/recruitable
recruitable = yes
Supported Scopes: leader
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

closest_system - Executes enclosed effects on a system -within a specific number of jumps span- that meets the limit criteria. This completely ignores bypasses (wormholes and gateways)
closest_system = { min_steps = <int, minimum # of systems 'away'> max_steps = <int, maximum # of systems 'away'> limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

random_owned_fleet - Executes enclosed effects on a random fleet owned by the scoped country that meets the limit criteria
random_owned_fleet = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_ambient_object - Executes enclosed effects on a random ambient object in the game that meets the limit criteria
random_ambient_object = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

random_system_ambient_object - Executes enclosed effects on a random ambient object in the scoped system that meets the limit criteria
random_system_ambient_object = { limit = { <triggers> } <effects> }
Supported Scopes: galactic_object
Supported Targets: none

every_ambient_object - Executes enclosed effects on every ambient object in the game that meets the limit criteria
every_ambient_object = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

every_system_ambient_object - Executes enclosed effects on every ambient object in the scoped system that meets the limit criteria
every_system_ambient_object = { limit = { <triggers> } <effects> }
Supported Scopes: galactic_object
Supported Targets: none

set_ambient_object_flag - Sets an arbitrarily-named flag on the scoped ambient object
set_ambient_object_flag = <key>
Supported Scopes: ambient_object
Supported Targets: none

set_timed_ambient_object_flag - Sets an arbitrarily-named flag on the scoped ambient object for a set duration
set_timed_ambient_object_flag = { flag = <key> days = <int> }
Supported Scopes: fleet
Supported Targets: none

remove_ambient_object_flag - Removes a flag from the scoped ambient object
remove_ambient_object_flag = <key>
Supported Scopes: ambient_object
Supported Targets: none

every_fleet_in_system - Executes enclosed effects on every fleet in the scoped system that meets the limit criteria
every_fleet_in_system = { limit = { <triggers> } <effects> }
Supported Scopes: galactic_object
Supported Targets: none

random_fleet_in_system - Executes enclosed effects on a random fleet in the scoped system that meets the limit criteria
random_fleet_in_system = { limit = { <triggers> } <effects> }
Supported Scopes: galactic_object
Supported Targets: none

set_aggro_range - Sets the scoped fleet/country's aggro range in intra-system units
set_aggro_range = <int>
Supported Scopes: country fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_fleet_stance - Sets the stance of the scoped fleet
set_fleet_stance = <key, aggressive/passive/evasive>
Supported Scopes: fleet
Supported Targets: none

set_aggro_range_measure_from - Determines whether the scoped fleet/country's aggro range is measured from the fleet's current position or its spawn location
set_aggro_range_measure_from = <key, self/return_point>
Supported Scopes: country fleet
Supported Targets: none

establish_communications_no_message - Silently establish communications between scoped country and target country
establish_communications_no_message = <target>
Supported Scopes: country
Supported Targets: none

set_subject_of - Sets the scoped country to be a specific subject of target country
set_subject_of = { who = <target> subject_type = <key> }
Supported Scopes: country
Supported Targets: none

unassign_leader - Unassigns scoped leader from their post or unassigns leader from the scoped planet/ship/fleet/army
unassign_leader = <target>
Supported Scopes: ship fleet leader army
Supported Targets: none

exile_leader_as - Exiles the scoped country/fleet/army/pop faction's leader and saves them with a custom name
exile_leader_as = <key>
Supported Scopes: country fleet leader army pop_faction
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_leader - Reinstates a previously-exiled leader to the scoped country/fleet/army/pop faction
set_leader = <key>
Supported Scopes: country fleet army pop_faction
Supported Targets: none

add_skill - Adds a sum of experience points to the scoped leader
add_skill = 200
Supported Scopes: leader
Supported Targets: none

set_skill - Sets the scoped leader's level
set_skill = 3
Supported Scopes: leader
Supported Targets: none

every_neighbor_system - Executes enclosed effects on every one of the scoped system's neighboring systems that meet the limit criteria
every_neighboring_system = { ignore_hyperlanes = <yes/no> limit = { <triggers> } <effects> }
Supported Scopes: galactic_object
Supported Targets: none

random_neighbor_system - Executes enclosed effects on a random system neigboring the scoped system that meets the limit criteria
random_neighboring_system = { ignore_hyperlanes = <yes/no> limit = { <triggers> } <effects> }
Supported Scopes: galactic_object
Supported Targets: none

set_federation_leader - Sets a country to lead a federation
Supported Scopes: country
Supported Targets: none

add_colony_progress - Adds to ongoing colonization progress on the scoped planet
add_colony_progress = <0.0-1.0>
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

start_colony - Starts colonization of the scoped planet
start_colony = {
owner = <target>
species = <target / key>
ethos = <random / target / { ethic = <key> ethic = <key> }>
}
Supported Scopes: planet
Supported Targets: none

subtract_variable - Decrements a previously-set variable by a specific amount
subtract_variable = { which = <string> = value = <int> }
Supported Scopes: all
Supported Targets: none

multiply_variable - Multiplies a previously-set variable by a specific amount
multiply_variable = { which = <string> = value = <int> }
Supported Scopes: all
Supported Targets: none

divide_variable - Divides a previously-set variable by a specific amount
divide_variable = { which = <string> = value = <int> }
Supported Scopes: all
Supported Targets: none

play_sound - Play the defined sound effect
play_sound = myfirstsoundeffect
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_crisis_sound - Sets the crisis ambient loop to the current effect
set_crisis_sound = myfirstsoundeffect
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

stop_crisis_sound - Stops the crisis ambient loop
stop_crisis_sound = yes
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_is_female - Sets the gender of the scoped leader
set_is_female = true
Supported Scopes: leader
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

create_fleet_from_naval_cap - Creates a new fleet from empire designs up to specified fraction of naval cap
create_fleet_from_naval_cap = 0.5
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

remove_opinion_modifier - Removes a specific opinion modifier towards target country or any contry from the scoped country
remove_opinion_modifier = { modifier = <key> who = <target (optional)> }
Supported Scopes: country
Supported Targets: none

set_war_goal - Sets a war goal to the scoped rebel country/war
set_war_goal = { type = <key> target = <target> enemy = <target> }
Supported Scopes: country war
Supported Targets: none

change_country_flag - Changes the scoped country's flag
change_country_flag = random
change_country_flag = { icon = { category = <key> file = <filename> } background = { category = <key> file = <filename> } colors = { <key> <key> } }
Supported Scopes: country
Supported Targets: none

add_threat - Adds diplomatic threat from target country
add_threat = { who = <system/planet/country> amount = 4 }
Supported Scopes: planet country galactic_object
Supported Targets: none

set_mission - Sets the current mission of an observation station
Supported Scopes: fleet
Supported Targets: none

change_dominant_species - Changes the dominant species of the current Country, change_all also changes all usage of that species (Pops etc) in the empire
change_dominant_species = { species = target change_all = yes }
Supported Scopes: country
Supported Targets: none

end_rivalry - Force-end rivalry with target country
end_rivalry = <target>
Supported Scopes: country
Supported Targets: none

set_species_flag - Sets an arbitrarily-named flag on the scoped species
set_species_flag = <key>
Supported Scopes: species
Supported Targets: none

set_timed_species_flag - Sets an arbitrarily-named flag on the scoped species for a set duration
set_timed_species_flag = { flag = <key> days = <int> }
Supported Scopes: species
Supported Targets: none

remove_species_flag - Removes a flag from the scoped species
remove_species_flag = <key>
Supported Scopes: species
Supported Targets: none

auto_move_to_planet - Makes a fleet or ship auto-move to target planet
auto_move_to_planet = { target = <planet> clear_auto_move_on_arrival = yes }
Supported Scopes: ship fleet
Supported Targets: none

remove_auto_move_target - Makes a fleet or ship stop auto-moving
remove_auto_move_target = yes
Supported Scopes: ship fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

auto_follow_fleet - Makes a fleet or ship auto-move to target fleet and potentially attack it
auto_follow_fleet = { target = <fleet> attack_fleet = yes }
Supported Scopes: ship fleet
Supported Targets: none

set_closed_borders - Changes closed borders status between two countries
Supported Scopes: country
Supported Targets: none

every_war_participant - Iterate through all war participants
every_war_participant = { limit = { <triggers> } <effects> }
Supported Scopes: war
Supported Targets: none

repair_percentage - Restores all hull points to the scoped ship
repair_ship = yes
Supported Scopes: ship fleet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

endgame_telemetry - Send endgame telemetry event
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_deposit - Replaces resource deposit on the scoped planet
set_deposit = <key/random>
Supported Scopes: planet
Supported Targets: none

randomize_flag_symbol - Randomizes a country's flag symbol within the selected category
randomize_flag_symbol = pirate
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

add_claims - Adds claims on target system
add_claims = { who = <country> num_of_claims = x show_notification = no }
Supported Scopes: galactic_object
Supported Targets: none

remove_claims - Removes claims on target system
remove_claims = { who = <country> num_of_claims = x }
Supported Scopes: galactic_object
Supported Targets: none

create_military_fleet - Creates a military fleet with the designs of a specified country.
Supported Scopes: all
Supported Targets: none

guarantee_country - Makes a country guarantee another country
Supported Scopes: country
Supported Targets: none

every_owned_fleet - Executes enclosed effects on every fleet owned by the scoped country that meets the limit criteria
every_owned_fleet = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

every_subject - switches Scope to and goes through all Subjects
Supported Scopes: country
Supported Targets: none

random_subject - Scopes to a random Subject
Supported Scopes: country
Supported Targets: none

set_species_homeworld - Defines a homeworld for the current species.
Supported Scopes: species
Supported Targets: none

clear_resources - Clears resources of a country
Supported Scopes: country
Supported Targets: none

reroll_planet_modifiers - Rebuild modifiers on target planet
reroll_planet_modifiers = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

reroll_deposits - Rebuild resource deposits on target planet
reroll_deposits = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

delete_fleet - Deletes the target fleet (no death graphics)
delete_fleet = <target>
delete_fleet = {
target=<target>
kill_leader=<yes/no> #default yes
destroy_template=<yes/no> #default no
}
Supported Scopes: all
Supported Targets: none

add_trust - Adds trust on scope country towards target country
add_trust = { amount = <amount> who = <target> }
Supported Scopes: country
Supported Targets: none

add_tradition - Adds the specified tradition to the scoped country. add_tradition = <tradition_key>
Supported Scopes: country
Supported Targets: none

join_war - Joins wars on the side of target country
join_war = <target>
Supported Scopes: country
Supported Targets: none

add_global_ship_design - Adds a specific global design to the game
add_global_ship_design = <target>
Supported Scopes: all
Supported Targets: none

every_mining_station - Executes enclosed effects on every orbital mining station in the game that meets the limit criteria
every_mining_station = { limit = { <triggers> } <effects> }
Supported Scopes: planet country
Supported Targets: none

every_research_station - Executes enclosed effects on every orbital mining station in the game that meets the limit criteria
every_mining_station = { limit = { <triggers> } <effects> }
Supported Scopes: planet country
Supported Targets: none

set_timed_leader_flag - Sets an arbitrarily-named flag on the scoped leader for a set duration
set_timed_leader_flag = { flag = <key> days = <int> }
Supported Scopes: leader
Supported Targets: none

set_species_identity - Sets the current species scopes identity to match the target scopes making them evaluate as the same species in is_same_species trigger.
Supported Scopes: species
Supported Targets: none

pop_force_add_ethic - Adds a specific ethic to the scoped pop regardless if pop-species allows ethic divergence or not.
pop_add_ethic = <key>
Supported Scopes: pop
Supported Targets: none

set_empire_name - Sets the name of the current Empire.
Supported Scopes: country
Supported Targets: none

set_empire_flag - Sets the flag of the current Empire.
Supported Scopes: country
Supported Targets: none

set_planet_name - Sets the name of the current planet.
Supported Scopes: planet
Supported Targets: none

set_fleet_formation - Sets a custom fleet formation on a fleet. set_fleet_formation = { position = { x = 1 y = 1 } position = { x = 2 y = 1 } }
Supported Scopes: fleet
Supported Targets: none

create_message - Creates a message, can take multiple variables
create_message = { type = BYPASS_EXPLORED localization = BYPASS_EXPLORED_MESSAGE days = 30 target = root variable = { type = name localization = SYSTEM1 scope = from } variable = { type = name localization = SYSTEM2 scope = fromfrom } }
Supported Scopes: all
Supported Targets: none

set_halted - Sets the mega structure upgrade to halted status for n days
set_halted = nDays
Supported Scopes: megastructure
Supported Targets: none

upgrade_megastructure_to - Starts an upgrade process on a mega structure. upgrade_megastructure_to = <new_type>
Supported Scopes: megastructure
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_planet_entity - Change entity of a planet.
Example:
set_planet_entity = {
entity = <name of entity>
graphical_culture = <target or name of culture>
picture = <picture override>
atmosphere_color = <color from 3 components>
atmosphere_intensity = <0.0 - 1.0>
atmosphere_width = <0.0 - 1.0>
}
Supported Scopes: planet
Supported Targets: none

remove_planet - Removes the planet from the scope
remove_planet = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_megastructure_flag - Sets an arbitrarily-named flag on the scoped mega structure
set_star_flag = <key>
Supported Scopes: megastructure
Supported Targets: none

set_timed_megastructure_flag - Sets an arbitrarily-named flag on the scoped mega structure for a set duration
set_timed_megastructure_flag = { flag = <key> days = <int> }
Supported Scopes: megastructure
Supported Targets: none

remove_megastructure_flag - Removes a flag from the scoped mega structure
remove_megastructure_flag = <key>
Supported Scopes: megastructure
Supported Targets: none

destroy_ship - Destroys the target ship (with death graphics)
destroy_ship = <target>
Supported Scopes: all
Supported Targets: none

delete_ship - Deletes the target ship (no death graphics)
delete_ship = <target>
Supported Scopes: all
Supported Targets: none

change_species - Changes the species of the scoped object
change_species = <target>
Supported Scopes: country ship pop leader army
Supported Targets: none

change_leader_portrait - Changes the portrait of the leader in scope.
change_leader_portrait = <key or species event target>
Supported Scopes: leader
Supported Targets: none

resettle_pop - Instantly resettles pop
resettle_pop = { pop = <target pop> planet = <target planet> tile = <target tile> }
Supported Scopes: all
Supported Targets: none

set_citizenship_type - Set citizenship type for scoped species/pop/leader
set_citizenship_type = { country = <target> type = citizenship_full cooldown = yes }
Supported Scopes: pop leader species
Supported Targets: none

set_military_service_type - Set military service type for scoped species/pop/leader
set_military_service_type = { country = <target> type = military_service_full cooldown = yes }
Supported Scopes: pop leader species
Supported Targets: none

set_purge_type - Set purge type for scoped species/pop/leader
set_purge_type = { country = <target> type = purge_full cooldown = yes }
Supported Scopes: pop leader species
Supported Targets: none

set_slavery_type - Set slavery type for scoped species/pop/leader
set_slavery_type = { country = <target> type = slavery_livestock cooldown = yes }
Supported Scopes: pop leader species
Supported Targets: none

set_population_controls - Set population control for scoped species/pop/leader
set_population_controls = { country = <target> type = yes cooldown = yes }
Supported Scopes: pop leader species
Supported Targets: none

set_migration_controls - Set migration control for scoped species/pop/leader
set_migration_controls = { country = <target> type = yes cooldown = yes }
Supported Scopes: pop leader species
Supported Targets: none

set_living_standard - Set living standard for scoped species/pop/leader
set_living_standard = { country = <target> type = living_standard_good cooldown = yes }
Supported Scopes: pop leader species
Supported Targets: none

shift_ethic - Shifts an empire towards a specific ethic, adjusting aferwards to keep number of ethics points consistent
shift_ethic = <key>
Supported Scopes: country
Supported Targets: none

pop_change_ethic - Changes scoped pop to chosen ethic
pop_change_ethic = <key>
Supported Scopes: pop
Supported Targets: none

clear_ethos - Clears all ethics of specified pop or country
clear_ethos = yes
Supported Scopes: country pop
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

clear_planet_modifiers - Clear modifiers on target planet
clear_planet_modifiers = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

remove_all_armies - Removes all armies on scoped planet
remove_all_armies = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

mutate_species - Randomly mutate a species.
Supported Scopes: species
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

rename_species - rename_species = {
use one of the following:
name = "an explicit name with [Bracket.Stuff]"
name = random
name_list = "key"
}
Supported Scopes: species
Supported Targets: none

reset_years_of_peace - Resets years of peace for a country.
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

add_ruler_trait - Adds a specific ruler trait to the scoped leader, even if they are not currently ruler; it becomes active when they become ruler
add_ruler_trait = <trait>
Supported Scopes: leader
Supported Targets: none

remove_ruler_trait - Removes a specific ruler trait from the scoped leader, even if they are not currently ruler; this is relevant if they ever become ruler
remove_ruler_trait = <trait>
Supported Scopes: leader
Supported Targets: none

add_notification_modifier - Add a notification modifier to the country
add_notification_modifier = <key>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

remove_notification_modifier - Remove a notification modifier to the country
remove_notification_modifier = <key>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_city_graphical_culture - Sets the scoped country's city graphical culture
set_city_graphical_culture = <key>
Supported Scopes: country
Supported Targets: none

set_player - Assign the player of the target country to play the scoped country instead
event_target:new_country = { set_player = event_target:eek:ld_country }
Supported Scopes: country
Supported Targets: none

change_species_characteristics - Changes the characteristics of a species
change_species_characteristics = {
sapient = <Y/N, determines if species is pre-sapient>
immortal = <Y/N, determines if species leaders are immortal>
pops_can_be_colonizers = <Y/N, determines if pops of that species can colonize>
pops_can_migrate = <Y/N, determines if pops of that species can migrate>
pops_can_reproduce = <Y/N, determines if pops of that species can reproduce>
pops_can_join_factions = <Y/N, determines if pops of that species can join factions>
can_generate_leaders = <Y/N, determines if that species can generate leaders>
pops_can_be_slaves = <Y/N, determines if pops from that species can become slaves>
pops_have_happiness = <Y/N, determines if pops from that species have happiness>
can_be_modified = <Y/N, determines if the species can be modified>
pops_auto_growth = <1, speed at which the pops from that species grow automatically
pop_maintenance = <1, amount of energy each pop of that species consume monthly
new_pop_resource_requirement = { type = food_surplus value = 42 }
portrait = <key or species event target>

Supported Scopes: species
Supported Targets: none

copy_techs_from - Copies all techs from the target country to the scoped country, except for some exceptions listed. Tech weights (and weight modifiers) are honoured, meaning that techs a country should not have will not be copied.
copy_techs_from = {
target = country
except = { tech_1 tech_2 }
}
Supported Scopes: country
Supported Targets: none

create_bypass - Creates a bypass in the parent SpatialObject (stored in FromFrom), of the type passed in "type".
Supported Scopes: megastructure
Supported Targets: none

activate_gateway - Activates the gateway associated with a megastructure.
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

spawn_natural_wormhole - Spawns a new natural wormhole in the scoped system.
spawn_system = { bypass_type = <wormhole/sealed_wormhole> orbit_distance = 100 orbit_angle = 90 random_pos = yes/no }
Supported Scopes: galactic_object
Supported Targets: none

link_wormholes - Link the wormhole from the scoped system to the wormhole in the target system.
link_wormholes = from
Supported Scopes: galactic_object
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

create_starbase - Creates a starbase in orbit of the star of the scoped galactic object
create_starbase = {
owner = <target>
size = <ship_size>
module = <starbase_module>
building = <starbase_building>
effect = { ... }
}
Supported Scopes: galactic_object
Supported Targets: none

set_starbase_size - Sets the ship size of a starbase
set_starbase_size = <ship_size>
Supported Scopes: starbase
Supported Targets: none

set_starbase_module - Sets a module in a slot on a starbase
set_starbase_module = { slot = <int> module = <starbase_module> }
Supported Scopes: starbase
Supported Targets: none

set_starbase_building - Sets a building in a slot on a starbase
set_starbase_building = { slot = <int> buiding = <starbase_buildin> }
Supported Scopes: starbase
Supported Targets: none

add_casus_belli - Adds a Casus Belli to the scoped country against the target country.
add_casus_belli = { type = cb_subjugation who = <country> days = 10 }
Supported Scopes: country
Supported Targets: none

get_galaxy_setup_value - Copies a value from the galaxy setup into a variable, optionally scaling it by an int value
get_galaxy_setup_value = { which = <string> setting = <string> [ scale = <int> ] }
Supported Scopes: all
Supported Targets: none

finish_upgrade - Finish the current upgrade of a Mega Structure.

Supported Scopes: megastructure
Supported Targets: none

effect_on_blob - Executes an effect on systems with planets owned by the scoped country, starting at an origin, and until a certain percentage of owned planets matching the planet_limit has been covered.
effect_on_blob = {
center = <system target>
owned_planets_percentage = 1.0
planet_limit = { <planet triggers> }
effect = { <system effects> }
}
Supported Scopes: country
Supported Targets: none

add_seen_bypass_type - Makes the scoped country remember that it has encountered the bypass type
add_seen_bypass_type = bypass_type
Supported Scopes: country
Supported Targets: none

add_seen_bypass - Makes the scoped country remember that it has encountered the bypass
add_seen_bypass = FROM
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_fleet_bombardment_stance - Sets the bombardment stance of the scoped fleet
set_fleet_stance = selective
Supported Scopes: fleet
Supported Targets: none

check_casus_belli_valid - Re-evaluate the specified casus belli type with given target country
check_casus_belli_valid = {
target = none/<optional country target>
type = <optional casus belli type>
}
Supported Scopes: country
Supported Targets: none

copy_ethos_and_authority - Makes the scoped country copy the ethos and government authority of the target country.
copy_ethos_and_authority = FROM
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

clone_leader - Clones the last created leader for the scoped country
clone_leader = {
target = <event target>
#properties to override, see create_leader
effect = { ... }
}
Supported Scopes: country
Supported Targets: none

set_home_base - Set the home base of the scoped fleet to the specified starbase
set_home_base = event_target:cool_starbase
Supported Scopes: fleet
Supported Targets: ???

add_hyperlane - Adds a hyperlane between two systems
add_hyperlane = { from = <system> to = <system> }
Supported Scopes: all
Supported Targets: none

remove_hyperlane - Removes existing hyperlane between two systems
remove_hyperlane = { from = <system> to = <system> }
Supported Scopes: all
Supported Targets: 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> }
Supported Scopes: all
Supported Targets: none

create_saved_leader - Creates a new saved leader for the scoped country with a lookup key
create_saved_leader = {
key = <string>
creator = <target>
name = <random / string>
species = <target / key>
gender = <optional / gender> #defalut = random
type = <random / key>
skill = <random / int>
set_age = <int>
traits = { trait = <key> trait = <key> }
}
Supported Scopes: country
Supported Targets: none

remove_saved_leader - Removes a saved leader for the scoped country with a lookup key
remove_saved_leader = <string>
Supported Scopes: country
Supported Targets: none

activate_saved_leader - Moves a saved leader to the active for the scoped country with a lookup key
activate_saved_leader = {
key = <string>
add_to_owned=<yes/no> #default yes
effect = {...}
}
Supported Scopes: country
Supported Targets: none

delete_megastructure - Deletes the target mega structure (no death graphics)
delete_megastructure = <target>
Supported Scopes: all
Supported Targets: none

add_random_research_option - Adds s random tech research option to the scoped country's tech view list, permanent until researched. if none applicable it runs fail_effects
add_random_research_option = {
category = <string>
area = <key>
tier = <int>
add_progress = <num>
ignore_prereqs = <yes/no> #default no
fail_effects = {}
}
Supported Scopes: country
Supported Targets: none

add_asteroid_belt - Adds an asteroid belt at the distance in the scope.
Example:
add_asteroid_belt = {
radius=<desired radius>
type=<asteroid belt type key>
}
Supported Scopes: galactic_object
Supported Targets: none

set_asteroid_belt - Sets an asteroid belt at the distance in the scope.
Example:
set_asteroid_belt = {
radius=<desired radius>
type=<asteroid belt type key>
}
Supported Scopes: galactic_object
Supported Targets: none

fleet_action_research_special_project - Sends a fleet to research a special project
fleet_action_research_special_project = { special_project = test_project target = event_target:project_planet }
Supported Scopes: fleet
Supported Targets: none

remove_last_built_district - Removes last built district from the scoped planet
remove_last_built_district = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

remove_all_districts - Removes all districts from the scoped planet
remove_all_districts = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

remove_district - Removes a specific district from the scoped planet
remove_district = <key>
Supported Scopes: planet
Supported Targets: none

add_district - Begins construction of a specific district on the scoped tile
add_district = <key>
Supported Scopes: planet
Supported Targets: none

enable_on_market - Enables a resource on the Galactic Market
enable_on_market = <resource_key>
Supported Scopes: all
Supported Targets: none

enable_galactic_market - Enables the galactic market. enable_galactic_market = <yes/no>
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

validate_planet_buildings_and_districts - Rebuild modifiers on target planet
reroll_planet_modifiers = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

country_event - Fires a country event for the scoped country, with optional DAYS and RANDOM delay
country_event = { id = <event id> days = 30 random = 8 }
Supported Scopes: country
Supported Targets: none

planet_event - Fires a planet event for the scoped planet, with optional DAYS and RANDOM delay
planet_event = { id = <event id> days = 30 random = 8 }
Supported Scopes: planet
Supported Targets: none

random - All enclosed effects may or may not be executed depending on set chance
random = { chance = 50 <effects> }
Supported Scopes: all
Supported Targets: none

create_ship_design - Creates a new ship design for use with last_created_design target
create_ship_design = { design = <key> ftl = <target, optional, sets FTL drive to target country's> }
Supported Scopes: all
Supported Targets: none

change_government - Change the scoped country's government authority and/or civics
change_government = random
or
change_government = {
authority = random / <key>
civics = random / { civic = <key> civic = random }
}
Supported Scopes: country
Supported Targets: none

ship_event - Fires a ship event for the scoped ship, with optional DAYS and RANDOM delay
ship_event = { id = <event id> days = 30 random = 8 }
Supported Scopes: ship
Supported Targets: none

pop_event - Fires a pop event for the scoped pop, with optional DAYS and RANDOM delay
pop_event = { id = <event id> days = 30 random = 8 }
Supported Scopes: pop
Supported Targets: none

enable_special_project - Enables a specific special research project for target country at a specific location (should be same as the current scope where possible)
enabble_special_project = { name = <project key> owner = <target> location = <target, ideally THIS> }
Supported Scopes: all
Supported Targets: none

add_resource - Adds specific resource to the stockpile for the country scope:
add_resource = {
<resource_name_1> = <value_1>
<resource_name_2> = <value_2>
...
}

Supported Scopes: country
Supported Targets: none

fleet_event - Fires a fleet event for the scoped fleet, with optional DAYS and RANDOM delay
fleet_event = { id = <event id> days = 30 random = 8 }
Supported Scopes: fleet
Supported Targets: none

random_planet_within_border - Executes enclosed effects on a random planet within the scoped country's borders that meets the limit criteria
random_planet_within_border = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

pop_remove_ethic - Removes a specific ethic from the scoped pop
pop_remove_ethic = <key>
Supported Scopes: pop
Supported Targets: none

create_rebels - Creates a rebellion
create_rebels = {
name = <random / string>
authority = <random / key>
civics = random / { civic = <key> civic = random }
species = <target>
ethos = <random / { ethic = <key> ethic = <key> }
}
Supported Scopes: planet
Supported Targets: none

cancel_terraformation - Cancels terraformation of the scoped planet
cancel_terraformation = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

set_primitive_age - Sets a 'primitive age' for the scoped (primitive, pre-FTL) country
set_primitive_age = renaissance_age
Supported Scopes: country
Supported Targets: none

while - Repeats enclosed effects while limit criteria are met or until set iteration count is reached
while = { limit = { <triggers> } <effects> }
while = { count = [3|Variable] <effects> }
Supported Scopes: all
Supported Targets: none

clear_blocker - Clears scoped deposit blocker and fires its on_cleared effect
clear_blocker = yes
Supported Scopes: deposit
Supported Targets: none

every_system_in_cluster - Executes enclosed effects on every system in the cluster that meet the limit criteria
every_system_in_cluster = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

create_cluster - Creates a cluster centered around the specified spatial object
Supported Scopes: all
Supported Targets: none

remove_army - Removes the scoped army
remove_army = yes
Supported Scopes: army
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

prevent_anomaly - Disables or enables anomaly generation for the scoped planet
prevent_anomaly = yes
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

observation_outpost_owner - Executes enclosed effects on the owner of the observation post in orbit around the scoped planet
observation_outpost_owner = { <effects> }
Supported Scopes: planet
Supported Targets: ???

observation_outpost - Executes enclosed effects on every observation post in the game that meets the limit criteria
observation_outpost = { limit = { <triggers> } <effects> }
Supported Scopes: planet country
Supported Targets: none

add_deposit - Adds resource deposit to the scoped planet
add_deposit = <key/random>
Supported Scopes: planet
Supported Targets: none

clear_deposits - Removes all deposits from the scoped planet
clear_desposits = yes
Supported Scopes: planet
Supported Targets: none

set_country_type - Changes the country type of the scoped country
set_country_type = <key>
Supported Scopes: country
Supported Targets: none

set_age - Sets the age of the scoped leader
set_age = <int>
Supported Scopes: leader
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

conquer - Conquers the planet by setting its owner to target country and adding an unhappiness modifier
conquer = <target country>
Supported Scopes: planet
Supported Targets: none

pop_faction_event - Fires a pop faction event for the scoped pop faction, with optional DAYS and RANDOM delay
pop_faction_event = { id = <event id> days = 30 random = 8 }
Supported Scopes: pop_faction
Supported Targets: none

set_pop_faction_flag - Sets an arbitrarily-named flag on the scoped pop's faction/pop faction
set_pop_faction_flag = <key>
Supported Scopes: pop pop_faction
Supported Targets: none

remove_pop_faction_flag - Removes a flag from the scoped pop's faction/pop faction
remove_pop_faction_flag = <key>
Supported Scopes: pop pop_faction
Supported Targets: none

set_timed_pop_faction_flag - Sets an arbitrarily-named flag on the scoped pop faction for a set duration
set_timed_pop_faction_flag = { flag = <key> days = <int> }
Supported Scopes: pop pop_faction
Supported Targets: none

add_tech_progress - Gives percentage progress (0.0-1.0) in a specific tech to the scoped country
add_tech_progress = { tech = <key> progress = <float> }
Supported Scopes: country
Supported Targets: none

abort_special_project - Aborts a specific special project for the country, removing it from the situation log
abort_special_project = { type = <project key> location = <target> }
Supported Scopes: country
Supported Targets: none

every_pop_faction - Executes enclosed effects on every pop faction within the scoped country that meets the limit criteria
every_pop_faction = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_pop_faction - Executes enclosed effects on a random pop faction within the scoped country that meets the limit criteria
random_pop_faction = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

observer_event - Fires an observer event for all observers.
Supported Scopes: all
Supported Targets: none

set_custom_capital_location - Sets a custom spatial object as custom country capital location.
Supported Scopes: country
Supported Targets: none

spawn_planet - Spawns a planet in a system.
Supported Scopes: galactic_object
Supported Targets: none

spawn_megastructure - Spawns a mega structure in a system.
Supported Scopes: galactic_object
Supported Targets: none

remove_megastructure - Removes a mega structure.
remove_megastructure = <target mega structure>
Supported Scopes: all
Supported Targets: none

trigger_megastructure_icon - if a planet has trigger_megastructure_icon = yes then the map icon for the star will show a megastructure icon
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

run_ai_strategic_data - Runs strategic data for AI
destroy_country = yes
Supported Scopes: country
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

add_static_war_exhaustion - Adds static war exhaustion, scaled with value_for_planet_destruction, to owner of the battle location
owner = { add_static_war_exhaustion = { attacker = <country> location = <planet> value_for_planet_destruction = <0.0-1.0> #scales the amount WE that is added }}
Supported Scopes: country
Supported Targets: none

set_planet_size - Adds/Removes tiles to/from the scoped planet to adjust its planet size
set_planet_size = <int>
Supported Scopes: planet
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

every_system_planet - Executes enclosed effects on every planet within the scoped system that meets the limit criteria
random_system = { limit = { <triggers> } <effects> }
Supported Scopes: galactic_object
Supported Targets: none

surveyed - Sets the planet as un/surveyed by target country
surveyed = { set_surveyed = yes surveyor = <target> }
Supported Scopes: planet
Supported Targets: none

join_alliance - Join federation with target
join_alliance = { who = <target> override_requirements = yes/no }
Supported Scopes: country
Supported Targets: none

create_leader - Creates a new leader for the scoped country
create_leader = {
name = <random / string>
species = <target / key>
gender = <optional / gender> #defalut = random
type = <random / key>
skill = <random / int>
set_age = <int>
traits = { trait = <key> trait = <key> }
}
Supported Scopes: country
Supported Targets: none

set_disabled - Enables or disables the scoped ship
set_disabled = no
Supported Scopes: ship
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

else - Executes enclosed effects if limit criteria of preceding 'if' or 'else_if' is not met
if = { limit = { <triggers> } <effects> }
else = { <effects> }
Supported Scopes: all
Supported Targets: none

log - Prints a message to game.log for debugging purposes.
Supported Scopes: all
Supported Targets: THIS ROOT PREV FROM OWNER CONTROLLER CAPITAL SOLAR_SYSTEM LEADER RANDOM FROMFROM PREVPREV PREVPREVPREV PREVPREVPREVPREV

debug_break - Trigger an assertion to stop the debugger when encountering this effect; argument is ignored
debug_break = yes
Supported Scopes: all
Supported Targets: none

inverted_switch - Executes the first appropriate effect set for a specific trigger treated as NOT.
inverted_switch = {
trigger = <trigger>
<corresponding key/bool/int> = { <effect> }
<corresponding key/bool/int> > (less/greater than appear 'reversed') { <effect> }
default = { <effect> }
}
Supported Scopes: all
Supported Targets: none

random_owned_army - Iterate through each army that is owned by the country
random_owned_army = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

every_owned_army - Iterate through each army that is owned by the country
every_owned_army = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_planet_army - Iterate through each defending army on a planet
random_planet_army = { limit = { <triggers> } <effects> }
Supported Scopes: planet
Supported Targets: none

every_planet_army - Iterate through each defending army on a planet
every_planet_army = { limit = { <triggers> } <effects> }
Supported Scopes: planet
Supported Targets: none

random_relation - Iterate through all relations
random_relation = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

every_relation - Iterate through all relations
every_relation = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_neighbor_country - Iterate through all neighbor countries
random_neighbor_country = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

every_neighbor_country - Iterate through all neighbor countries
every_neighbor_country = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_bordering_country - Iterate through all bordering countries of a system
random_bordering_country = { limit = { <triggers> } <effects> }
Supported Scopes: galactic_object
Supported Targets: none

every_bordering_country - Iterate through all bordering countries of a system
every_bordering_country = { limit = { <triggers> } <effects> }
Supported Scopes: galactic_object
Supported Targets: none

random_combatant_fleet - Iterate through each fleet this fleet is in combat with
random_combatant_fleet = { limit = { <triggers> } <effects> }
Supported Scopes: fleet
Supported Targets: none

every_combatant_fleet - Iterate through each fleet this fleet is in combat with
every_combatant_fleet = { limit = { <triggers> } <effects> }
Supported Scopes: fleet
Supported Targets: none

random_pool_leader - Iterate through each leader that is recruitable for the country
random_pool_leader = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

every_pool_leader - Iterate through each leader that is recruitable for the country
every_pool_leader = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_megastructure - Iterate through each megastructure
random_megastructure = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

every_megastructure - Iterate through each megastructure
every_megastructure = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

random_owned_megastructure - Iterate through each owned megastructure
random_owned_megastructure = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

every_owned_megastructure - Iterate through each owned megastructure
every_owned_megastructure = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_system_megastructure - Iterate through each megastructure in system
random_system_megastructure = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

every_system_megastructure - Iterate through each megastructure in system
every_system_megastructure = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

random_owned_pop_species - Iterate through each species of a country's owned pops
random_owned_pop_species = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

every_owned_pop_species - Iterate through each species of a country's owned pops
every_owned_pop_species = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_owned_starbase - Iterate through every owned starbase
random_owned_starbase = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

every_owned_starbase - Iterate through every owned starbase
every_owned_starbase = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_system - Iterate through all systems
random_system = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

every_system - Iterate through all systems
every_system = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

random_system_within_border - Iterate through all systems within the country's borders
random_system_within_border = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

every_system_within_border - Iterate through all systems within the country's borders
every_system_within_border = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

random_war_participant - Iterate through all war participants
random_war_participant = { limit = { <triggers> } <effects> }
Supported Scopes: war
Supported Targets: none

random_sector - Iterate through all sectors
random_sector = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

every_sector - Iterate through all sectors
every_sector = { limit = { <triggers> } <effects> }
Supported Scopes: all
Supported Targets: none

random_owned_sector - Iterate through every owned sector
random_owned_sector = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none

every_owned_sector - Iterate through every owned sector
every_owned_sector = { limit = { <triggers> } <effects> }
Supported Scopes: country
Supported Targets: none


=================

We’re all working really hard on putting the finishing touches on 2.2 and MegaCorp right now, but we will be keeping an eye on the thread -- although answers to more complex questions may have to wait. Next week we’ll be posting the full 2.2 patch notes!
 

Deluge

Private
14 Badges
Apr 19, 2018
21
0
  • Stellaris
  • Stellaris: Galaxy Edition
  • Hearts of Iron IV: Cadet
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Leviathans Story Pack
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Stellaris: Distant Stars
  • Stellaris: Megacorp
  • Stellaris: Lithoids
  • Crusader Kings II
  • Stellaris: Galaxy Edition
  • Stellaris - Path to Destruction bundle
  • Stellaris: Synthetic Dawn
Thanks for holding this modding diary. I am a modder with a few mods on the workshop and some that I am still working on. One these mods currently has a lot of problems related to things that aren't currently fully supported by the game. Therefore I want to ask if any of these issues here have solutions or workarounds that have been implemented in Le Guin and if not if there is any chance that they might be implemented in a later update. Other than that I'm really looking forward too Le Guin and the new modding tools that will be available and all the new features we will also be getting.


Question 1

Would it be possible add a way for a species class to not show up in species appearance list in the beginning of the game but is able to show up when you go to the secondary species appearance selection screen when you have chosen a civic that enables that. The reason why I want this is that I have made some special civics that can only be chosen at start that gives the player a robotic secondary species. The problem is that for this to work correctly I would have to make the ROBOT species class available for species selection and it would thus be a category that you could choose a portrait from. There would thus be two categories for the robotic portraits one only made for playing as machines with machine inteligence and one category only for selecting the appearance for a robotic secondary species. Making it so a species class could show up in the secondary species selection but not in the main species collection would solve this issue. Currently I'm forced to have the player choose their secondary species from the Machine species class and that creates a bunch of other problems after the game has started. These problems could be solved if I found a way to convert a the spawned species class from MACHINE to ROBOT but I have not being able to do that successfully either.

To sumarize I would for a species class to have "possible_secondary" work even if "playable" is set to "has_global_flag = game_started".

possible_secondary = {
civics = {
OR = {
value = civic_machine_irregular_uplifter
value = civic_space_robotic_caretaker
}
}
text = SECONDARY_SPECIES_CLASS_INVALID
}

playable = { has_global_flag = game_started }


Question 2

Would it be possible to add way to enable or disable civics for specific species classes or archetypes. This would make it possible to add civics for only certain species types. This could also be used to disable civics after a species has undergone synthetic evolution for example.

allowed_archetypes = { BIOLOGICAL }

or something like

excluded_archetypes = { ROBOT MACHINE LITHOID }

This feature is something that I would use to create special civics that could be chosen when are playing as a non-biological and non-gestalt species such as a energy being, silicoid/lithoid or aquatic ones. I would for example then be able to create a copy of the agrarian idyll civic that has to do with minerals instead of food that is exclusive to lithoids while agrarian idyll could be exclusive to non-lithoids.


Question 3

Woud it be possible to add AND to the civic and authority creation file. Some restriction are currently very hard to make and also very spaghetti cody without this option. This would also let us make more specific authority restrictions like making a new authority that can be chosen if you have either ethic A or B but not a combination of them. This is not currently possible do in the game.

For example if I added the collectivist and individualist ethic pari back into the game and gave it the same restrictions that authoritarian currently has. If I made an empire that was fanatic authoritarian and materialist I could only choose between imperial or dictatorial. The same would apply if I choose fanatic collectivist and materialist and I could one agaoin only choose between those two. What I want is that if I then choose fanatic authoritarian and collectivist or fanatic collectivist and individualist I would only be able to choose imperial authority and not dictatorial. In short I would like to be able to restrict authorities to not only individual ethics but also specific ethic combinations.

If you added the ability to add AND to the civic area I would also be able make the ethic restrictions for this civic here much less complicated.

ethics = {
OR = {
text = civic_tooltip_inward_perfection_machine_all
value = ethic_gestalt_consciousness
value = ethic_light_gestalt_consciousness
}
OR = {
value = ethic_gestalt_consciousness

value = ethic_fanatic_xenophobe
value = ethic_fanatic_pacifist
value = ethic_fanatic_isolationist

value = ethic_pacifist
value = ethic_xenophobe
}
OR = {
value = ethic_gestalt_consciousness

value = ethic_fanatic_xenophobe
value = ethic_fanatic_pacifist
value = ethic_fanatic_isolationist

value = ethic_isolationist
value = ethic_xenophobe
}
OR = {
value = ethic_gestalt_consciousness

value = ethic_fanatic_xenophobe
value = ethic_fanatic_pacifist
value = ethic_fanatic_isolationist

value = ethic_isolationist
value = ethic_pacifist
}
}

I could then instead could it like this here which would be much easier to code and modify later on. I also persoanly think that is also much more readable format to it in.


ethics = {
OR = {
value = ethic_gestalt_consciousness
AND = {
value = ethic_light_gestalt_consciousness
value = ethic_fanatic_xenophobe
}
AND = {
value = ethic_light_gestalt_consciousness
value = ethic_fanatic_pacifist
}
AND = {
value = ethic_light_gestalt_consciousness
value = ethic_fanatic_isolationist
}
AND = {
value = ethic_light_gestalt_consciousness
value = ethic_isolationist
value = ethic_xenophobe
}
AND = {
value = ethic_gestalt_consciousness
value = ethic_isolationist
value = ethic_pacifist
}
AND = {
value = ethic_gestalt_consciousness
value = ethic_xenophobe
value = ethic_pacifist
}
}
}



Question 4

Would it be possible to add a special tag for authorities that makes it possible disable and automatic election on a rulers death? The reason why I want this is because I have made a custom authority that is a combination of the democratic and imperial authority. This is supposed to make it seem like every x years the population of the empire votes on whether the current imperial family will stay in power or if a new dynasty should be created and rise to power.

While it is currently possible to make an authority with a democratic election cycle and have heirs at the same time there is still one big problem.
If the current ruler dies of old age the heir takes the throne and the election time is reset. This makes very unlikely for the election to even occur since the timer will be rset on the rulers death.

A way for the current heir to be removed when the ruler changes in an election would also be great to see.


Question 5

Would it possible to have the create_leader use a specified namelist when it genereates a leader. This would make it possible to let the name list be in charge of choosing a name for the leader instead of us having to clone the whole create_leader sequence for each new name we want randomize.


Question 6

The next few issues has to do with the NSpecies part of the defines.

Currently in the game these values here: "TRAIT_MODIFICATION_BASE_COST", "TRAIT_CLIMATE_MODIFICATION_COST", "TRAIT_MODIFICATION_COST_MULT", "MODIFICATION_COST_MULT" are use for all species except robots which use these here instead: "ROBO_TRAIT_MODIFICATION_BASE_COST", "ROBO_TRAIT_MODIFICATION_COST_MULT", "ROBO_MODIFICATION_COST_MULT".

What I would like to see is these defines here being opened up a bit more and make it possible for us modders to create custom entries for these values that affect certain species. What I mean by that is that I would like for each list of these tags should affect a specific species archetype. we could thus have a BIOLOGICAL_TRAIT_MODIFICATION_BASE_COST and a LITHOID_TRAIT_MODIFICATION_BASE_COST at the same time one for species classes with the BIOLOGICAL archetype and one for species classes with the LITHOID archetype. This would make it much easier to create new species classes with specific and unique rules.

The main reason for why I want this is that I have made a new buildable pop and implemented it in a mod thats called bio-constructs. These are genetically engineered lifeforms made from the bottom that has uniwue traits that make them different from standart biological species. When implemented correctly these would be an laternative to robobts and one that empires that chooses biological ascenstion to be more likely to choose. The uniwue feature of these beingsshould be that they would be a lot easier to modify the traits for. As have alsready said this isn't possible right now as they would get the standard "TRAIT_MODIFICATION_BASE_COST" value since it isn't possible create a nex exclusive one for the BIO_CONSTRUCT archetype. If i also do modify the "TRAIT_MODIFICATION_BASE_COST" it would affect both bio constructs and regular biological species something that I would like to avoid.

I would also like to see a define value that defines the defualt value for changing species portrait. Such a define should also be given to name changes. Changing only the species name shouldn't take 5000 society potints for example. Maybe a child define tag that give a percentage of the species modification if only the portrait or name is changed.

Adding these features would let modders more easily add species classes and archetypes that are supposed to represent species that aren't biological but also not robotic either.

Another feature that I would like to see implemented that has a lot to to with these things here is for us to create or own technologies that enable special features for a species. I would for example like to be able to create a new technology that enables species modification for a species instead of it defaulting to the Gene tailoring tech or the Machine Template System tech. This would make it easier to make new custom buildable species as you could gain the ability earlier or later than your ability to modify your own species and robots. I would like for this to also affect planet preferences and allow us to change the tech needed to unlock this for a speciees as well.

The last thing I would like to ask for in this question would be a way to connect an empire policy to a species. If I return to the example of bio-constructs, if I am playing a game and have unlocked the third level of bio constructs, Bio Thralls, I would then like for my empire policy bio construct inteligence policy to affect the sapience of my bio constructs in the same way that the artificial inteligence policy affects robots. I would then be able to choose outlawed and have their sapience removed and a negative modifier added to them to make them similar to their earlier version just like synthetics can be made to work like robots and droids by removing their sentience.


Question 7

I would ike to see a pop neutral version of "pop_robot_build_speed_mult" and "pop_robot_build_cost_mult". By that I mean that currently there is no modifier to affect build speed amd cost of non-robotic buildable pops. This means that we would have use the default robotic one that has the unintended effect of also affecting robots and other buildable pops that don't grow naturaly. A way to fix this would be make it affect only pops of a certain archetype. Like what I said in my last wuestion something like BIOLOGICAL_pop_build_speed_mult and BIOLOGICAL_pop_build_cost_mult would fix this. The main reason for wanting this feature is implementing non-robotic species that needs to be built and not grow naturaly. Currently in the game I have to pop_robot_build_speed_mult and it works for some of these new species classes but not for all and I would like for it to only affect that specific archetype and not robots.


Question 8

Some issues with possible tag and authorities

If you use the potential tag for civics then the civic will automatically and instantly appear in the civic menu when it condition is fulfilled. This means that if you have chosen gestalt as ethic you can quickly switch between the Machine Intelligence authority and the Hive Mind authority and the civics will instantly change to those that match the new authority.

The problem is that this rule doesn't apply to authorities. say I change the Machine Intelligence authority and the Hive Mind authority so that both of them has the potential tag set to has gestalt ethic and the normal authorities has the potential tag set to has not gestalt ethic. This means that when you first oppen the government menu only normal authorities show up and the gestalt ones are hidden. The issue happens when you then choose gestalt as your ethic. What is supposed to happen is that all the normal authorities should dissappear while the two gestalt authorities should come back from hiding and be the only authorites to choose from. What happens instead is that the normal authorities get greyed instead of dissapearing and the gestalt authorities doesn't appear at all. They appear to be stuck in some way. To only way temporarily fix this issue is to after choosing gestalt ethic to click on one of the other menu choices such as the voice menu and then go back to the government menu and then the che correct authorities will appear correctly there.

This ended up being a bit confusing so i'll make a video of the issue and post it in the thread on later.


Question 9

Would it be possible to make it for ethics in the faction menu that we have more than 0 pops following to turn change color or use a different icon. Currently it's a bit hard to at a glance see which ethics actually have any followers. This is especisally true when you are playing with a mod that add many ethics.

Would it also be possible to decouple the icon use for the the ethics from the actual ethics chooseable ingame. For example the materialist having one icon ingame but on the faction menu showing another one.


Question 10


Some other no mod related things I would like to see in the future would be a a random flag and background randomizer and a way to reorder the order that custom empires appear in. The ability to drag and drop planet buildings and starbase upgrades would also be nice.


Question 11

In the authorities.txt file you can specify if an authority starts with one ore more specified traits by using the "traits = {" tag. What I would to see is to be able to add conditions for these traits to appear. Such as for example if you choose a species appearance from the Arthropoid category and choose imperial authority your species gets a special hive_like trait.m

traits = {
if = {
limit = {
is_species_class = ART }
}
}
trait = trait_hive_like
}

This feature would be used for making you able to choose a machine portrait and when then choosing a non-gestalt authority (if modded to be allowed) automatically is given the synthetic3 and Mechanical traits. This would make it possible to have those appear in the trait selection menu as unremovable traits and thus also appear in the trait showcase part of a custom empire. Modders would then not have to make special events that grant such traits at game_start if this change was made. There is also other uses for this change but is what I can think of right now. The requirement could also be the archetype but I think using species class as the limiter should be enough.


Question 12

Will we be able to mod in new species rights Le guin? It is currently possible to edit the species_rights.txt file and add new species rights to it that you won't get errors in the error log for. The current problem is thzt the game doesn't recognice these ingame in any form. The won't appear in species rights menu when they should appear and you can't change to them with events either. If this got added I could finaly be able to fully implement the new living standards and slavery types that I have wanted to add for a long time now.


Question 13


Give conditions to the modifiers of civics and ethics.
For example make it possible to code the Idealistic Foundation civic so That if you have the democratic authority it grants +5% pop happiness while if you have the oligarchic authority it grants +5% influence from factions instead. The same should also apply to ethics as well.

Give conditions to localisations. I would like to get the ability to have things like personalities, ethics and civics have alternative descriptions or names based on the empire that has it. This is to make it possible to reuse already existing peices of the game without editing and changing to many files. For example, Lets say I make a clone of the Rogue Servitor civic and change it up a bit and give it to hive minds and i call it Organic Defender or something. I would then like to have this share the same personality except changing some things in the diplo_phrases file. The only issue would then be the name of the personality and its description. A nice way to fix this would then be to give the servitor personality a localisation condition saying that if it is a Machine Inteligence and has a valid Rogue Servitor civic display the normal name and description and if it has Hive Mind authority and valid Organic Defender civic then display the alternative name and description. This is just an example but there are places where I eould like to reuse the whole personality and only give it alternative names and descritpions based on certain conditions.

Question 14

Will we be able to create our own ai personality behaviours? I woulld personally like to be able to create new behaviours similar to the robot_exploiter and robot_liberator only that they instead of describing the ai personality's behavior around robots it describes a different species class.

Question 15

Will we ever have the ability to directly modify the files of a mod that is loaded in an open game and have the update to show the change without needing to restart the game. This would be really great to have when working on the guis as that is a really taxing part of modding the game as one would need to restart the game and update the mod each time one changes a value.



End

That is all the current mod related questions I have for the development of the game as of this time. I'll probably go back add more to this list if find any new ones.
 
Last edited:

Deluge

Private
14 Badges
Apr 19, 2018
21
0
  • Stellaris
  • Stellaris: Galaxy Edition
  • Hearts of Iron IV: Cadet
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Leviathans Story Pack
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Stellaris: Distant Stars
  • Stellaris: Megacorp
  • Stellaris: Lithoids
  • Crusader Kings II
  • Stellaris: Galaxy Edition
  • Stellaris - Path to Destruction bundle
  • Stellaris: Synthetic Dawn
potential = {
habitable_structure = no
NOT = {
is_planet_class = pc_machine
is_planet_class = pc_hive
is_planet_class = pc_city
}
}

Has hive worlds been implemented?
 

WhapXI

Captain
84 Badges
Sep 7, 2012
483
15
  • Victoria 2: A House Divided
  • Victoria 2: Heart of Darkness
  • Rome: Vae Victis
  • Europa Universalis III
  • Heir to the Throne
  • Divine Wind
  • Europa Universalis III: Chronicles
  • Crusader Kings II
  • Crusader Kings II: Sword of Islam
  • Crusader Kings II: Legacy of Rome
  • Hearts of Iron IV: Field Marshal
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Cadet
  • Stellaris Sign-up
  • Crusader Kings II: Reapers Due
  • Europa Universalis IV: Rights of Man
  • Stellaris
  • Stellaris: Humanoids Species Pack
  • Age of Wonders: Planetfall
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Leviathans Story Pack
  • Crusader Kings II: Monks and Mystics
  • Europa Universalis IV: Dharma
  • Surviving Mars
  • Hearts of Iron IV: Death or Dishonor
  • Europa Universalis IV: Rule Britannia
  • Age of Wonders III
  • Europa Universalis IV: Cradle of Civilization
  • Stellaris: Distant Stars
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Apocalypse
  • Stellaris: Lithoids
  • Crusader Kings III
  • Hearts of Iron IV: La Resistance
  • Imperator: Rome - Magna Graecia
  • Crusader Kings II: Sunset Invasion
  • Surviving Mars: First Colony Edition
  • Prison Architect
  • Hearts of Iron IV: Expansion Pass
  • Crusader Kings II: Conclave
  • Europa Universalis IV: Golden Century
  • Victoria 2
  • War of the Roses
  • Cities: Skylines
  • Europa Universalis IV: El Dorado
  • Crusader Kings II: Way of Life
  • Europa Universalis IV: Common Sense
  • Crusader Kings II: Horse Lords
  • Europa Universalis IV: Cossacks

ViolentBeetle

Colonel
39 Badges
Mar 2, 2017
989
0
  • Crusader Kings II
  • Crusader Kings II: Reapers Due
  • Stellaris - Path to Destruction bundle
  • Victoria 2: A House Divided
  • Crusader Kings II: Sword of Islam
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: The Republic
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: Charlemagne
  • Tyranny: Archon Edition
  • Stellaris: Lithoids
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Leviathans Story Pack
  • Crusader Kings II: Monks and Mystics
  • Crusader Kings II: Jade Dragon
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Stellaris: Distant Stars
  • Stellaris: Megacorp
  • Crusader Kings II: Holy Fury
  • Stellaris: Ancient Relics
  • Europa Universalis IV: Rights of Man
  • Hearts of Iron IV: Cadet
  • Stellaris: Galaxy Edition
  • Stellaris: Galaxy Edition
  • Stellaris
  • Crusader Kings II: Conclave
  • Crusader Kings II: Horse Lords
  • Europa Universalis IV: Common Sense
  • Pillars of Eternity
  • Crusader Kings II: Way of Life
  • Victoria 2
  • Stellaris: Synthetic Dawn
  • Victoria 2: Heart of Darkness
  • Europa Universalis IV: Art of War
Changes seem easy enough once I get my hands on actual mechanics.

It's upsetting that jobs output is conditionally modified within a job though. Wouldn't it be better to have dynamic modifier. Something like "job_enforcer_add_resource_unity" = 1?

Also, I'm not quite sure - is it possible to control who can and can not do the job? I want jobs that only xenos can do, and jobs that you need a special trait to do.
 

Leylos

Second Lieutenant
4 Badges
Jan 12, 2018
179
19
  • Stellaris: Apocalypse
  • Stellaris: Megacorp
  • Stellaris: Ancient Relics
  • Stellaris: Distant Stars Pre-Order
Probably not 100% fitting for this dev diary but here it goes:

With the extensive changes you have made to the economic side of the game, do you think (objectively) that the AI has improved?

I do recall that the AI had trouble dealing with the previous tile system, so I'd love to know things stand now.
 

Elimdur

More Events Mod Team
91 Badges
Oct 30, 2011
646
383
  • Europa Universalis IV: Res Publica
  • Europa Universalis IV: Mare Nostrum
  • Cities: Skylines - Snowfall
  • Crusader Kings II: Jade Dragon
  • Cities: Skylines - After Dark
  • Stellaris: Galaxy Edition
  • Crusader Kings II: Reapers Due
  • Europa Universalis IV: Pre-order
  • Europa Universalis IV: Third Rome
  • Sword of the Stars II
  • Sword of the Stars
  • Semper Fi
  • Rome Gold
  • Magicka
  • Knights of Pen and Paper +1 Edition
  • Hearts of Iron III Collection
  • Hearts of Iron III
  • Crusader Kings II
  • Crusader Kings II: Charlemagne
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sword of Islam
  • Europa Universalis IV: Art of War
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Call to arms event
  • For the Motherland
  • Hearts of Iron III: Their Finest Hour
  • Stellaris: Leviathans Story Pack
  • Stellaris: Digital Anniversary Edition
  • Europa Universalis IV: Rights of Man
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Cadet
  • Stellaris: Galaxy Edition
  • Cities: Skylines - Natural Disasters
  • Hearts of Iron IV: Together for Victory
  • Hearts of Iron IV: La Resistance
  • Crusader Kings II: Horse Lords
  • Europa Universalis IV: Common Sense
  • Pillars of Eternity
  • Crusader Kings II: Way of Life
  • Magicka: Wizard Wars Founder Wizard
  • Europa Universalis IV: El Dorado
  • Cities: Skylines - Mass Transit
  • 500k Club
Does the Planetary Shield Generator building still exist in 2.2?
 

sbytheway

Justified and Ancient
74 Badges
Jan 7, 2009
353
560
  • Magicka
  • Cities: Skylines - Snowfall
  • Cities: Skylines - After Dark
  • Europa Universalis IV: Mare Nostrum
  • Europa Universalis IV: Third Rome
  • Europa Universalis IV: Pre-order
  • Victoria 2: Heart of Darkness
  • Victoria 2: A House Divided
  • Supreme Ruler 2020
  • Victoria: Revolutions
  • Europa Universalis IV: Res Publica
  • Europa Universalis IV: Call to arms event
  • Crusader Kings II: The Republic
  • Crusader Kings II
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Europa Universalis IV: Wealth of Nations
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sword of Islam
  • Europa Universalis IV: Art of War
  • Europa Universalis IV: Conquest of Paradise
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Leviathans Story Pack
  • Cities: Skylines - Natural Disasters
  • Hearts of Iron IV: Together for Victory
  • Tyranny: Archon Edition
  • Age of Wonders
  • Crusader Kings II: Monks and Mystics
  • Stellaris: Apocalypse
  • Cities: Skylines - Mass Transit
  • Europa Universalis IV: Mandate of Heaven
  • Surviving Mars
  • Hearts of Iron IV: Death or Dishonor
  • Cities: Skylines - Green Cities
  • Europa Universalis IV: Rights of Man
  • Crusader Kings II: Reapers Due
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Expansion Pass
  • Crusader Kings II: Conclave
  • Stellaris: Humanoids Species Pack
  • Crusader Kings II: Horse Lords
  • Europa Universalis IV: Common Sense
  • Crusader Kings II: Way of Life
  • Europa Universalis IV: El Dorado
  • Cities: Skylines
  • Victoria 2
Changes seem easy enough once I get my hands on actual mechanics.

It's upsetting that jobs output is conditionally modified within a job though. Wouldn't it be better to have dynamic modifier. Something like "job_enforcer_add_resource_unity" = 1?

Also, I'm not quite sure - is it possible to control who can and can not do the job? I want jobs that only xenos can do, and jobs that you need a special trait to do.
Couldn't you just set the job weighting to 0 unless they have the specific trait?
weight = {
Modifier = {
Factor = 0
NOT = { HAS_TRAIT = your trait here}
}
}
 

joe9594

Major
71 Badges
Aug 16, 2013
707
938
  • Victoria 2: Heart of Darkness
  • Crusader Kings II: Jade Dragon
  • Europa Universalis IV: Third Rome
  • Stellaris - Path to Destruction bundle
  • Europa Universalis IV: Mare Nostrum
  • Victoria 2: A House Divided
  • Semper Fi
  • Victoria: Revolutions
  • Europa Universalis IV: Res Publica
  • Heir to the Throne
  • Hearts of Iron III: Their Finest Hour
  • Hearts of Iron III
  • For the Motherland
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Art of War
  • Crusader Kings II
  • Crusader Kings II: Charlemagne
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sunset Invasion
  • Europa Universalis IV: Conquest of Paradise
  • Divine Wind
  • Europa Universalis III: Chronicles
  • Europa Universalis III
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sword of Islam
  • Stellaris Sign-up
  • Surviving Mars
  • BATTLETECH
  • Victoria 2
  • Europa Universalis IV: Mandate of Heaven
  • Crusader Kings III
  • Hearts of Iron IV: Together for Victory
  • Stellaris: Leviathans Story Pack
  • Europa Universalis IV: Rights of Man
  • Crusader Kings II: Reapers Due
  • Hearts of Iron IV: Cadet
  • Cities: Skylines
  • Hearts of Iron IV Sign-up
  • Stellaris
  • Crusader Kings II: Conclave
  • Europa Universalis IV: Cossacks
  • Crusader Kings II: Horse Lords
  • Europa Universalis IV: Common Sense
  • Pillars of Eternity
  • Crusader Kings II: Way of Life
  • Magicka: Wizard Wars Founder Wizard
I love that in some dev diaries people rush to have them saying first as the first post but in this case the first post is like 3 pages.
 

Muhrks

Second Lieutenant
31 Badges
May 24, 2016
180
0
  • Europa Universalis IV: Art of War
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Res Publica
  • Stellaris: Synthetic Dawn
  • Surviving Mars: Digital Deluxe Edition
  • Prison Architect: Psych Ward
  • BATTLETECH - Digital Deluxe Edition
  • Stellaris: Distant Stars
  • Surviving Mars: First Colony Edition
  • BATTLETECH: Flashpoint
  • Stellaris: Megacorp
  • Prison Architect
  • Surviving Mars: First Colony Edition
  • Stellaris: Lithoids
  • BATTLETECH: Heavy Metal
  • Stellaris: Apocalypse
  • Stellaris: Humanoids Species Pack
  • Age of Wonders III
  • Surviving Mars
  • BATTLETECH
  • Stellaris - Path to Destruction bundle
  • Stellaris: Leviathans Story Pack
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Galaxy Edition
  • Stellaris
  • Europa Universalis IV: Common Sense
  • Europa Universalis IV: El Dorado
  • Stellaris: Ancient Relics
  • BATTLETECH: Season pass
I don't understand, what this is all about, but I guess, all the mods out there, will take a while, to be updated. Longest Dev Diary ever. Longer then the patchnotes, I think.
 

henzington

Field Marshal
87 Badges
May 28, 2013
3.775
1.392
  • Europa Universalis IV: Mare Nostrum
  • Crusader Kings II: Sword of Islam
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • BATTLETECH: Season pass
  • Europa Universalis IV: Dharma
  • Hearts of Iron IV: Death or Dishonor
  • Stellaris: Galaxy Edition
  • Hearts of Iron IV Sign-up
  • Stellaris Sign-up
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Field Marshal
  • Crusader Kings II: Reapers Due
  • Stellaris: Digital Anniversary Edition
  • Europa Universalis IV: Mandate of Heaven
  • Prison Architect
  • BATTLETECH
  • BATTLETECH: Heavy Metal
  • Europa Universalis IV: Dharma Pre-order
  • Stellaris: Lithoids
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Europa Universalis IV: Rule Britannia
  • Stellaris: Distant Stars
  • Crusader Kings II: Holy Fury Pre-order
  • Shadowrun: Hong Kong
  • Crusader Kings III
  • Crusader Kings II: The Old Gods
  • Europa Universalis IV: Golden Century
  • Imperator: Rome Deluxe Edition
  • Imperator: Rome Sign Up
  • Shadowrun Returns
  • Victoria 2
  • Stellaris: Ancient Relics
  • Cities: Skylines
  • Shadowrun: Dragonfall
  • Europa Universalis IV: El Dorado
  • Hearts of Iron IV: Expansion Pass
  • Crusader Kings II: Way of Life
  • Pillars of Eternity
  • Europa Universalis IV: Common Sense
  • Crusader Kings II: Horse Lords
  • Crusader Kings II: Conclave
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: Charlemagne
Looking forward to seeing mods like star trek new horizons making use of the new modding tools
 

WhapXI

Captain
84 Badges
Sep 7, 2012
483
15
  • Victoria 2: A House Divided
  • Victoria 2: Heart of Darkness
  • Rome: Vae Victis
  • Europa Universalis III
  • Heir to the Throne
  • Divine Wind
  • Europa Universalis III: Chronicles
  • Crusader Kings II
  • Crusader Kings II: Sword of Islam
  • Crusader Kings II: Legacy of Rome
  • Hearts of Iron IV: Field Marshal
  • Hearts of Iron IV: Colonel
  • Hearts of Iron IV: Cadet
  • Stellaris Sign-up
  • Crusader Kings II: Reapers Due
  • Europa Universalis IV: Rights of Man
  • Stellaris
  • Stellaris: Humanoids Species Pack
  • Age of Wonders: Planetfall
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Leviathans Story Pack
  • Crusader Kings II: Monks and Mystics
  • Europa Universalis IV: Dharma
  • Surviving Mars
  • Hearts of Iron IV: Death or Dishonor
  • Europa Universalis IV: Rule Britannia
  • Age of Wonders III
  • Europa Universalis IV: Cradle of Civilization
  • Stellaris: Distant Stars
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Apocalypse
  • Stellaris: Lithoids
  • Crusader Kings III
  • Hearts of Iron IV: La Resistance
  • Imperator: Rome - Magna Graecia
  • Crusader Kings II: Sunset Invasion
  • Surviving Mars: First Colony Edition
  • Prison Architect
  • Hearts of Iron IV: Expansion Pass
  • Crusader Kings II: Conclave
  • Europa Universalis IV: Golden Century
  • Victoria 2
  • War of the Roses
  • Cities: Skylines
  • Europa Universalis IV: El Dorado
  • Crusader Kings II: Way of Life
  • Europa Universalis IV: Common Sense
  • Crusader Kings II: Horse Lords
  • Europa Universalis IV: Cossacks
Is it possible to change the name that certain jobs appear as? Like if I was playing a Mega City One themed civ and I wanted my Enforcers to be called Judges, would there be a simple {if_has_this_civic = Mega_City_One then change_localisation_to = "Judge"} sort of thing I could do, or would I need to mod in a whole new job with the new localisation string, and make them mutually exclusive via civic availability?
 

ViolentBeetle

Colonel
39 Badges
Mar 2, 2017
989
0
  • Crusader Kings II
  • Crusader Kings II: Reapers Due
  • Stellaris - Path to Destruction bundle
  • Victoria 2: A House Divided
  • Crusader Kings II: Sword of Islam
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: The Republic
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: Charlemagne
  • Tyranny: Archon Edition
  • Stellaris: Lithoids
  • Stellaris: Digital Anniversary Edition
  • Stellaris: Leviathans Story Pack
  • Crusader Kings II: Monks and Mystics
  • Crusader Kings II: Jade Dragon
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Stellaris: Distant Stars
  • Stellaris: Megacorp
  • Crusader Kings II: Holy Fury
  • Stellaris: Ancient Relics
  • Europa Universalis IV: Rights of Man
  • Hearts of Iron IV: Cadet
  • Stellaris: Galaxy Edition
  • Stellaris: Galaxy Edition
  • Stellaris
  • Crusader Kings II: Conclave
  • Crusader Kings II: Horse Lords
  • Europa Universalis IV: Common Sense
  • Pillars of Eternity
  • Crusader Kings II: Way of Life
  • Victoria 2
  • Stellaris: Synthetic Dawn
  • Victoria 2: Heart of Darkness
  • Europa Universalis IV: Art of War
Either I'm blind or you didn't mention how planetary decisions work. Like the holy world decision you shown earlier, on uninhabitable planet.

And are they handled in planet scope? Would it crash the AI if there was a decision for every planet within border due to it constantly evaluating every planet?
 

Spartan878

Corporal
71 Badges
Dec 27, 2016
27
11
  • Ancient Space
  • Stellaris: Synthetic Dawn
  • Tyranny: Archon Edition
  • Stellaris: Galaxy Edition
  • Warlock 2: Wrath of the Nagas
  • Warlock 2: The Exiled
  • Majesty 2 Collection
  • King Arthur II
  • Impire
  • Stellaris: Leviathans Story Pack
  • Pillars of Eternity
  • Magicka 2
  • Knights of Pen and Paper 2
  • Stellaris
  • Stellaris: Galaxy Edition
  • Stellaris: Galaxy Edition
  • Cities in Motion 2
  • Hearts of Iron IV: Cadet
  • Cities in Motion
  • Stellaris: Digital Anniversary Edition
  • Cities: Skylines
  • Hearts of Iron IV: Together for Victory
  • Stellaris - Path to Destruction bundle
  • Steel Division: Normandy 44
  • Knights of Honor
  • Crusader Kings Complete
  • BATTLETECH
  • Surviving Mars
  • Stellaris: Lithoids
  • A Game of Dwarves
  • Victoria: Revolutions
  • For The Glory
  • Europa Universalis III Complete
  • Knights of Pen and Paper +1 Edition
  • The Kings Crusade
  • Magicka
  • Majesty 2
  • Europa Universalis III Complete
  • March of the Eagles
  • Europa Universalis III Complete
  • Hearts of Iron III
  • Rome Gold
  • Sengoku
  • Sword of the Stars
  • Teleglitch: Die More Edition
  • Victoria 2
  • Rome: Vae Victis
  • Warlock: Master of the Arcane
  • Europa Universalis III
Any consideration been made to the modablility of build-able pops? In one mod I have been working on any build-able biological pops I coded won't grow because organic pops won't grow by themselves without an already existing pop (tried messing with the game rules on this but found that it was hardcoded). I found that making them considered a robot pop ignores this rule but I can't use normal gene modding on them (which is not what I intend for in said mod). But for 2.2 If i create a biological build-able pop would it grow if I had a pop working on the job to make it grow?

Also any consideration for a remove_technology effect? for some other game-play mods I have been working on It would be easier on me (and other modders) to have such an effect instead of adding a potential to every basic technology so that an empire type that uses purely biological technology can't research them. Mainly I just want to be able to disable the starting technologies to said empire if they have the civic (or other conditions). When I add a potential to a starting technology it just crashes the game.