# This document is now the one source of truth for Special Project Documentation # Written by Pierre du Plessis. Up to date as of February 2021 # special_project = { # key = "MY_KEY" # Used to refer to it elsewhere, including locs; description is expected as e.g. "MY_KEY_DESC" # icon = "gfx/interface/icons/situation_log/situation_log_society.dds" # cost = 0 # research cost; must be '0' if using days_to_research # cost = { # can have modifiers and scaled modifiers. Country scope, no FROM # base = 500 # modifier = { # factor = 2 # has_ethic = ethic_militarist # } # scaled_modifier = { # limit = { } # scope = this # add/div/mult/factor = 100 # calc = pop_amount/pop_happiness/planet_distance_empire/planets_in_country # } # } # energy = 100 # energy cost # days_to_research = 180 # days to research if cost is 0 # tech_department = society_technology # only relevant if cost is not 0, specifies which research category to use # picture = GFX_evt_landing_ship # event picture used in situation log # timelimit = 180 # optional; time before it expires and fires on_fail # event_chain = key # specify which event chain it should belong to in the situation log # same_option_group_as = { KETLING_PROJECT_1 } # determines that this project is one of several options, along with other specified projects # location = yes/no # if no, it will not show on the map # sound = yes/no # play advisor sound or not # project_type = project_type_research(default)/project_type_bombardment # Updates "research/bombard" button accordingly in situation log. # # project_type_bombardment simulates a bombardment that would otherwise be not possible if the target has the can_have_scripted_bombardment flag # event_scope = ship_event/planet_scope/country_scope # sets event scope for the project # AI_wait_days = { # AI will wait for the amount of days specified. Works like normal AI weight fields, with factor/add/weight. Country scope, FROM is creation scope # weight = 80 # modifier = { # weight = 30 # has_ethic = ethic_fanatic_xenophile # } # } # requirements = { # # LEADER # leader = scientist # leader = commander # leader = general # leader = governor # skill = 2 #skill level of leader (scientist), generally not used anymore # has_trait = # is_founder_species = yes/no # # size_requirement = { # ship_size = "SHIPSIZE" # count = <> # The required amount of ships of the selected ship size # } # # # MILITARY SHIPS # shipclass_military = 1 # fleet_power = 999999 # # CIVILIAN SHIPS # shipclass_constructor = 2 # shipclass_science_ship = 1 # shipclass_colonizer = 2 # # ARMIES # shipclass_transport = 1 # assault_armies = 2 # defense_armies = 1 # # STATIONS # research_station = yes # mining_station = yes # observation_station = yes # } # on_success = { # Effect happens when project completes # # Scopes: # # THIS = project scope (matches setting in "event_scope" i.e. ship/planet/country) # # FROM = location scope, if set (usually a planet) # # PREV = country # } # on_start = { # Effect happens when you start researching the project # # Scopes: see on_success # } # on_progress_25/50/75 = { # Effect happens when you have researched X% of the research costs # # Scopes: see on_success # } # on_fail = { # Effect happens if you allow the timelimit to expire or the fail trigger evaluates to true # # Scopes: # # THIS = country # # FROM = project scope (matches setting in "event_scope" i.e. ship/planet/country). Might not exist! # # FROMFROM = location scope, if set (usually a planet) # } # on_cancel = { # Effect happens if you choose to stop researching or if the abort_trigger returns true # # Scopes: See on_fail # } # abort_trigger = { # Trigger for aborting the project and removing it from the situation log. Fires on_cancel effect # # Scopes: See on_fail # } # fail_trigger = { # Trigger for failing the project and removing it from the situation log. Fires on_fail effect # # Scopes: See on_fail # } # }