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

Pancakelord

Lord of Pancakes
44 Badges
Apr 7, 2018
3.375
12.292
  • Cities: Skylines - Green Cities
  • Stellaris: Leviathans Story Pack
  • Cities: Skylines - Natural Disasters
  • Hearts of Iron IV: Together for Victory
  • Stellaris: Ancient Relics
  • Cities: Skylines - Mass Transit
  • Surviving Mars
  • Hearts of Iron IV: Death or Dishonor
  • Imperator: Rome
  • Stellaris: Digital Anniversary Edition
  • Hearts of Iron IV: Expansion Pass
  • Stellaris: Humanoids Species Pack
  • Stellaris: Apocalypse
  • Cities: Skylines - Parklife
  • Stellaris: Distant Stars
  • Shadowrun Returns
  • Cities: Skylines Industries
  • Imperator: Rome Deluxe Edition
  • Magicka: Wizard Wars Founder Wizard
  • Stellaris: Nemesis
  • Europa Universalis IV
  • Stellaris: Necroids
  • Sword of the Stars
  • Crusader Kings III
  • War of the Roses
  • Cities: Skylines
  • Stellaris: Federations
  • Cities: Skylines - After Dark
  • Cities: Skylines - Snowfall
  • Stellaris: Lithoids
  • Stellaris: Galaxy Edition
  • Stellaris: Galaxy Edition
  • Stellaris: Galaxy Edition
  • Hearts of Iron IV: Cadet
  • Hearts of Iron IV: Colonel
  • Stellaris - Path to Destruction bundle
  • Stellaris: Megacorp
  • Stellaris: Synthetic Dawn
  • Crusader Kings II
  • Stellaris
  • Cities: Skylines Deluxe Edition
  • Sword of the Stars II
  • March of the Eagles
  • Darkest Hour
I noticed this in the wiki and it gave me a few ideas for events involving livestock slaves (don't ask)
1606871987821.png

But I cant seem to get it to trigger, either my scope is off, or these don't have any words saved in them for some phenotypes?

Does anyone know if it is possible to write up a localisation file /database/table that defines these, or make my own ones and reference them?
It'd be cool to get more dynamic text phrases (e.g. based on phenotype or authority) in to the event text prompts in general.
 
dip_messages_l_english.yml
XI_HOSTILE_GREETING_02:0 "The repulsive [From.GetRandomSpeciesSound] your [From.GetSpeciesMouthName] emits sounds like the expulsion of fluids from a lesser species on [Root.GetHomeWorldName] and will be treated accordingly."

Maybe that will help?

root - empire you speak with
from - player empire

Also check if CW Tools gives you scopes.
 
I use scripted_loc for menus in my mods


Code:
defined_text = {
    name = GetName_acemod_technology_disabled
    text = {
        trigger = {
            NOT = {
                has_global_flag = acemod_technology_disabled
            }
        }
        localization_key = acemod_trigger_yes
    }
    text = {
        trigger = {
            has_global_flag = acemod_technology_disabled
        }
        localization_key = acemod_trigger_no
    }
}

defined_text = {
    name = GetName_acemod_crisis_debuff_disabled
    text = {
        trigger = {
            NOT = {
                has_global_flag = acemod_crisis_debuff_disabled
            }
        }
        localization_key = acemod_trigger_yes
    }
    text = {
        trigger = {
            has_global_flag = acemod_crisis_debuff_disabled
        }
        localization_key = acemod_trigger_no
    }
}

defined_text = {
    name = GetName_acemod_fallen_awakened_empire_debuff_disabled
    text = {
        trigger = {
            NOT = {
                has_global_flag = acemod_fallen_awakened_empire_debuff_disabled
            }
        }
        localization_key = acemod_trigger_yes
    }
    text = {
        trigger = {
            has_global_flag = acemod_fallen_awakened_empire_debuff_disabled
        }
        localization_key = acemod_trigger_no
    }
}

defined_text = {
    name = GetName_acemod_defensive_jumpdrive_protocol_disabled
    text = {
        trigger = {
            NOT = {
                has_global_flag = acemod_defensive_jumpdrive_protocol_disabled
            }
        }
        localization_key = acemod_trigger_yes
    }
    text = {
        trigger = {
            has_global_flag = acemod_defensive_jumpdrive_protocol_disabled
        }
        localization_key = acemod_trigger_no
    }
}

defined_text = {
    name = GetName_acemod_constructor_reinforcements_disabled
    text = {
        trigger = {
            NOT = {
                has_global_flag = acemod_constructor_reinforcements_disabled
            }
        }
        localization_key = acemod_trigger_yes
    }
    text = {
        trigger = {
            has_global_flag = acemod_constructor_reinforcements_disabled
        }
        localization_key = acemod_trigger_no
    }
}

defined_text = {
    name = GetName_acemod_crisis_colossus_disabled
    text = {
        trigger = {
            NOT = {
                has_global_flag = acemod_crisis_colossus_disabled
            }
        }
        localization_key = acemod_trigger_yes
    }
    text = {
        trigger = {
            has_global_flag = acemod_crisis_colossus_disabled
        }
        localization_key = acemod_trigger_no
    }
}

Code:
  # Menu------------------------------------
acemod_menu_name:0 "Aggressive Crisis Engine"
acemod_menu.1.name:0 "$acemod_menu_name$: $GALAXY_SETTINGS$"
acemod_menu.1.desc:0 "Choose additional modules of §RAggressive Crisis Engine§! to be activated. Only game host can set these while in multiplayer."
acemod_menu.1.a:0 "£job_researcher£ $TECHNOLOGY$ - [root.GetName_acemod_technology_disabled]"
acemod_menu.1.a.tooltip:0 "Additional §RACEMOD§! technologies are added to the deck:\n§G+25%§! crisis damage for each tech tier, up to §G+75%§! total."
acemod_menu.1.b:0 "£mod_ship_damage_mult£ $acemod_crisis_debuff_modifier$ - [root.GetName_acemod_crisis_debuff_disabled]"
acemod_menu.1.b.tooltip:0 "§G$GALAXY_EMPIRE_VIEW$§!:\n\n$CRISIS_FACTOR$ $COUNTRY_MODIFIER$:\n£mod_ship_damage_mult£ §H$acemod_crisis_debuff_modifier$§!:\n$mod_damage_vs_country_type_swarm_mult$: §R-75%§!\n$mod_damage_vs_country_type_ai_empire_mult$: §R-75%§!\n$mod_damage_vs_country_type_extradimensional_mult$: §R-75%§!\n$mod_damage_vs_country_type_extradimensional_2_mult$: §R-75%§!\n$mod_damage_vs_country_type_extradimensional_3_mult$: §R-75%§!\n$mod_damage_vs_country_type_gray_goo_mult$: §R-25%§!\n---------------\n$acemod_crisis_debuff_modifier_desc$"
acemod_menu.1.c:0 "£acemod_mod_fallen_awakened_empire_debuff_modifier£ $acemod_fallen_awakened_empire_debuff_modifier$ - [root.GetName_acemod_fallen_awakened_empire_debuff_disabled]"
acemod_menu.1.c.tooltip:0 "§G$GALAXY_EMPIRE_VIEW$§!:\n\n$war_goal_wg_war_in_heaven$ $COUNTRY_MODIFIER$:\n£acemod_mod_fallen_awakened_empire_debuff_modifier£ §H$acemod_fallen_awakened_empire_debuff_modifier$§!:\n$mod_damage_vs_country_type_fallen_empire_mult$: §R-25%§!\n$mod_damage_vs_country_type_awakened_fallen_empire_mult$: §R-25%§!\n---------------\n$acemod_fallen_awakened_empire_debuff_modifier_desc$"
acemod_menu.1.d:0 "£acemod_mod_ship_part_wormhole_modifier£ $ai_crisis_poi_1$ $abandoned_wormhole_station$ - [root.GetName_acemod_defensive_jumpdrive_protocol_disabled]"
acemod_menu.1.d.tooltip:0 "§R$ai_crisis_chain_title$§! spawns §H$abandoned_wormhole_station$s§! above §H$ai_crisis_poi_1$s§!, allowing it for defensive fleet recalls.\n\n$acemod_menu_can_disable$"
acemod_menu.1.e:0 "£mod_ship_orbit_upkeep_mult£ $constructor_plural$ - [root.GetName_acemod_constructor_reinforcements_disabled]"
acemod_menu.1.e.tooltip:0 "§R$CRISIS_FACTOR$§!:\n\n$CRISIS_FACTOR$ $COUNTRY_MODIFIER$:\n$PRODUCES_RESOURCES$\n  £mod_ship_orbit_upkeep_mult£ $constructor_plural$ 5-$AUTOSAVE_YEARLY$ if $VALUE_LESS_THAN$10.\n\n$acemod_menu_can_disable$"
acemod_menu.1.f:0 "£job_purge£ $colossus_plural$ - [root.GetName_acemod_crisis_colossus_disabled] (§RWork in $PROGRESS_VALUE$§!)"
acemod_menu.1.f.tooltip:0 "§R$CRISIS_FACTOR$§!:\n\n§R$ai_crisis_chain_title$§!, §G$name_list_Prethoryn$§! and §M$name_list_Extradimensional$§! crises spawn £job_purge£ $colossus_plural$.\n\n$TRIGGER_REQUIRES$ $APOCALYPSE_TITLE$ $DLC_START$ $GAMESETUP_HOST$.\n\n$acemod_menu_can_disable$"
acemod_trigger_yes:0 "§G$ACTIVE$§!"
acemod_trigger_no:0 "§R$NOT_ACTIVE$§!"
acemod_menu.1.z:0 "§Y$SAVE$§!"
acemod_menu_can_disable:0 "You can disable it mid-game from this menu option."

Code:
namespace = acemod_menu
country_event = {
    id = acemod_menu.0
    hide_window = yes
    is_triggered_only = yes
    trigger = {
        is_ai = no
    }
    immediate = {
        country_event = {
            id = acemod_menu.1
        }
    }
}

country_event = {
    id = acemod_menu.1
    title = acemod_menu.1.name
    desc = acemod_menu.1.desc
    picture = GFX_evt_fallen_empire_awakes
    is_triggered_only = yes
    option = {
        name = acemod_menu.1.a
        custom_tooltip = acemod_menu.1.a.tooltip
        hidden_effect = {
            if = {
                limit = {
                    NOT = {
                        has_global_flag = acemod_technology_disabled
                    }
                }
                set_global_flag = acemod_technology_disabled
                country_event = {
                    id = acemod_menu.1
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                remove_global_flag = acemod_technology_disabled
                country_event = {
                    id = acemod_menu.1
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    option = {
        name = acemod_menu.1.b
        custom_tooltip = acemod_menu.1.b.tooltip
        hidden_effect = {
            if = {
                limit = {
                    NOT = {
                        has_global_flag = acemod_crisis_debuff_disabled
                    }
                }
                set_global_flag = acemod_crisis_debuff_disabled
                country_event = {
                    id = acemod_menu.1
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                remove_global_flag = acemod_crisis_debuff_disabled
                country_event = {
                    id = acemod_menu.1
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    option = {
        name = acemod_menu.1.c
        custom_tooltip = acemod_menu.1.c.tooltip
        hidden_effect = {
            if = {
                limit = {
                    NOT = {
                        has_global_flag = acemod_fallen_awakened_empire_debuff_disabled
                    }
                }
                set_global_flag = acemod_fallen_awakened_empire_debuff_disabled
                country_event = {
                    id = acemod_menu.1
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                remove_global_flag = acemod_fallen_awakened_empire_debuff_disabled
                country_event = {
                    id = acemod_menu.1
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    option = {
        name = acemod_menu.1.d
        custom_tooltip = acemod_menu.1.d.tooltip
        hidden_effect = {
            if = {
                limit = {
                    NOT = {
                        has_global_flag = acemod_defensive_jumpdrive_protocol_disabled
                    }
                }
                set_global_flag = acemod_defensive_jumpdrive_protocol_disabled
                country_event = {
                    id = acemod_menu.1
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                remove_global_flag = acemod_defensive_jumpdrive_protocol_disabled
                country_event = {
                    id = acemod_menu.1
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    option = {
        name = acemod_menu.1.e
        custom_tooltip = acemod_menu.1.e.tooltip
        hidden_effect = {
            if = {
                limit = {
                    NOT = {
                        has_global_flag = acemod_constructor_reinforcements_disabled
                    }
                }
                set_global_flag = acemod_constructor_reinforcements_disabled
                country_event = {
                    id = acemod_menu.1
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                remove_global_flag = acemod_constructor_reinforcements_disabled
                country_event = {
                    id = acemod_menu.1
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    option = {
        name = acemod_menu.1.f
        custom_tooltip = acemod_menu.1.f.tooltip
        hidden_effect = {
            if = {
                limit = {
                    NOT = {
                        has_global_flag = acemod_crisis_colossus_disabled
                    }
                }
                set_global_flag = acemod_crisis_colossus_disabled
                country_event = {
                    id = acemod_menu.1
                    days = 0
                    random = 0
                }
                break = yes
            }
            else_if = {
                limit = {
                    host_has_dlc = Apocalypse                    # Check for DLC presence to access this content is legally required.
                }
                # remove_global_flag = acemod_crisis_colossus_disabled                # Work in Progress.
                country_event = {
                    id = acemod_menu.1
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                country_event = {
                    id = acemod_menu.1                    # Fails to flip flag if DLC is not present.
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    option = {
        name = acemod_menu.1.z
    }
}

1607301977706.png


----


Code:
defined_text = {
    name = GetInfo_trigger_lock
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
            }
        }
        localization_key = amaryllian_decision_arcology_project_trigger_no
    }
    text = {
        trigger = {
            has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
        }
        localization_key = amaryllian_decision_arcology_project_trigger_yes
    }
}

defined_text = {
    name = GetInfo_trigger_designer
    text = {
        trigger = {
            NOR = {
                AND = {
                    NOT = {
                        has_planet_flag = amaryllian_hab_grand_arcology
                    }
                    check_variable = {
                        which = "amaryllian_arcology_setup_num"
                        value = 4
                    }
                }
                AND = {
                    NOT = {
                        has_planet_flag = amaryllian_hab_arcology
                    }
                    check_variable = {
                        which = "amaryllian_arcology_setup_num"
                        value = 1
                    }
                }
            }
        }
        localization_key = amaryllian_decision_arcology_project_trigger_no
    }
    text = {
        trigger = {
            OR = {
                AND = {
                    NOT = {
                        has_planet_flag = amaryllian_hab_grand_arcology
                    }
                    check_variable = {
                        which = "amaryllian_arcology_setup_num"
                        value = 4
                    }
                }
                AND = {
                    NOT = {
                        has_planet_flag = amaryllian_hab_arcology
                    }
                    check_variable = {
                        which = "amaryllian_arcology_setup_num"
                        value = 1
                    }
                }
            }
        }
        localization_key = amaryllian_decision_arcology_project_trigger_yes
    }
}

defined_text = {
    name = GetInfo_trigger_districts
    text = {
        trigger = {
            NOT = {
                free_district_slots < 1
            }
        }
        localization_key = amaryllian_decision_arcology_project_trigger_no
    }
    text = {
        trigger = {
            free_district_slots < 1
        }
        localization_key = amaryllian_decision_arcology_project_trigger_yes
    }
}

defined_text = {
    name = GetInfo_trigger_habitat_2
    text = {
        trigger = {
            OR = {
                has_planet_flag = advanced_habitat_2
                has_planet_flag = amaryllian_hab_arcology
                has_global_flag = vchecker_2_6_and_down
            }
        }
        localization_key = amaryllian_decision_arcology_project_trigger_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = advanced_habitat_2
                has_planet_flag = amaryllian_hab_arcology
                has_global_flag = vchecker_2_6_and_down
            }
        }
        localization_key = amaryllian_decision_arcology_project_trigger_no
    }
}

defined_text = {
    name = GetInfo_trigger_habitat_1
    text = {
        trigger = {
            OR = {
                has_planet_flag = advanced_habitat
                has_planet_flag = advanced_habitat_2
                has_planet_flag = amaryllian_hab_arcology
                has_global_flag = vchecker_2_6_and_down
            }
        }
        localization_key = amaryllian_decision_arcology_project_trigger_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = advanced_habitat
                has_planet_flag = advanced_habitat_2
                has_planet_flag = amaryllian_hab_arcology
                has_global_flag = vchecker_2_6_and_down
            }
        }
        localization_key = amaryllian_decision_arcology_project_trigger_no
    }
}

defined_text = {
    name = GetInfo_trigger_AP_2
    text = {
        trigger = {
            owner = {
                NOT = {
                    has_ascension_perk = ap_amaryllian_voidchildren
                }
            }
        }
        localization_key = amaryllian_decision_arcology_project_trigger_no
    }
    text = {
        trigger = {
            owner = {
                has_ascension_perk = ap_amaryllian_voidchildren
            }
        }
        localization_key = amaryllian_decision_arcology_project_trigger_yes
    }
}

defined_text = {
    name = GetInfo_trigger_AP_1
    text = {
        trigger = {
            owner = {
                NOT = {
                    has_ascension_perk = ap_voidborn
                }
            }
        }
        localization_key = amaryllian_decision_arcology_project_trigger_no
    }
    text = {
        trigger = {
            owner = {
                has_ascension_perk = ap_voidborn
            }
        }
        localization_key = amaryllian_decision_arcology_project_trigger_yes
    }
}

defined_text = {
    name = GetInfo_lock
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
            }
        }
        localization_key = amaryllian_GetInfo_lock_no
    }
    text = {
        trigger = {
            has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
        }
        localization_key = amaryllian_GetInfo_lock_yes
    }
}

defined_text = {
    name = GetTechInfo_arms
    text = {
        trigger = {
            OR = {
                has_planet_flag = amaryllian_arms_arcology
                owner = {
                    has_technology = amaryllian_tech_arms_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_arms_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = amaryllian_arms_arcology
                owner = {
                    has_technology = amaryllian_tech_arms_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_arms_no
    }
}

defined_text = {
    name = GetTechInfo_civilian
    text = {
        trigger = {
            OR = {
                has_planet_flag = amaryllian_civilian_arcology
                owner = {
                    has_technology = amaryllian_tech_civilian_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_civilian_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = amaryllian_civilian_arcology
                owner = {
                    has_technology = amaryllian_tech_civilian_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_civilian_no
    }
}

defined_text = {
    name = GetTechInfo_farming
    text = {
        trigger = {
            OR = {
                has_planet_flag = amaryllian_farming_arcology
                owner = {
                    has_technology = amaryllian_tech_farming_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_farming_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = amaryllian_farming_arcology
                owner = {
                    has_technology = amaryllian_tech_farming_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_farming_no
    }
}

defined_text = {
    name = GetTechInfo_fortress
    text = {
        trigger = {
            OR = {
                has_planet_flag = amaryllian_fortress_arcology
                owner = {
                    has_technology = amaryllian_tech_fortress_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_fortress_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = amaryllian_fortress_arcology
                owner = {
                    has_technology = amaryllian_tech_fortress_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_fortress_no
    }
}

defined_text = {
    name = GetTechInfo_research
    text = {
        trigger = {
            OR = {
                has_planet_flag = amaryllian_research_arcology
                owner = {
                    has_technology = amaryllian_tech_research_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_research_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = amaryllian_research_arcology
                owner = {
                    has_technology = amaryllian_tech_research_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_research_no
    }
}

defined_text = {
    name = GetTechInfo_bureaucratic
    text = {
        trigger = {
            OR = {
                has_planet_flag = amaryllian_bureaucratic_arcology
                owner = {
                    has_technology = amaryllian_tech_bureaucratic_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_bureaucratic_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = amaryllian_bureaucratic_arcology
                owner = {
                    has_technology = amaryllian_tech_bureaucratic_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_bureaucratic_no
    }
}

defined_text = {
    name = GetTechInfo_refinery
    text = {
        trigger = {
            OR = {
                has_planet_flag = amaryllian_refinery_arcology
                owner = {
                    has_technology = amaryllian_tech_refinery_industry
                    OR = {
                        has_technology = "tech_volatile_motes"
                        has_technology = "tech_rare_crystals"
                        has_technology = "tech_exotic_gases"
                    }
                }
            }
        }
        localization_key = amaryllian_gettechinfo_refinery_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = amaryllian_refinery_arcology
                owner = {
                    has_technology = amaryllian_tech_refinery_industry
                    OR = {
                        has_technology = "tech_volatile_motes"
                        has_technology = "tech_rare_crystals"
                        has_technology = "tech_exotic_gases"
                    }
                }
            }
        }
        localization_key = amaryllian_gettechinfo_refinery_no
    }
}

defined_text = {
    name = GetTechInfo_trade
    text = {
        trigger = {
            OR = {
                has_planet_flag = amaryllian_trade_arcology
                owner = {
                    has_technology = amaryllian_tech_trade_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_trade_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = amaryllian_trade_arcology
                owner = {
                    has_technology = amaryllian_tech_trade_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_trade_no
    }
}

defined_text = {
    name = GetTechInfo_mining
    text = {
        trigger = {
            OR = {
                has_planet_flag = amaryllian_mining_arcology
                owner = {
                    has_technology = amaryllian_tech_mining_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_mining_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = amaryllian_mining_arcology
                owner = {
                    has_technology = amaryllian_tech_mining_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_mining_no
    }
}

defined_text = {
    name = GetTechInfo_generator
    text = {
        trigger = {
            OR = {
                has_planet_flag = amaryllian_generator_arcology
                owner = {
                    has_technology = amaryllian_tech_generator_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_generator_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = amaryllian_generator_arcology
                owner = {
                    has_technology = amaryllian_tech_generator_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_generator_no
    }
}

defined_text = {
    name = GetTechInfo_sanctuary
    text = {
        trigger = {
            OR = {
                has_planet_flag = amaryllian_sanctuary_arcology
                owner = {
                    has_technology = amaryllian_tech_sanctuary_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_sanctuary_yes
    }
    text = {
        trigger = {
            NOR = {
                has_planet_flag = amaryllian_sanctuary_arcology
                owner = {
                    has_technology = amaryllian_tech_sanctuary_industry
                }
            }
        }
        localization_key = amaryllian_gettechinfo_sanctuary_no
    }
}

defined_text = {
    name = GetDistrictName_arms
    text = {
        trigger = {
            has_planet_flag = amaryllian_arms_arcology_setup
        }
        localization_key = amaryllian_district_arcology_arms_industry_setup
    }
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_arms_arcology_setup
            }
        }
        localization_key = amaryllian_district_arcology_arms_industry
    }
}

defined_text = {
    name = GetDistrictName_civilian
    text = {
        trigger = {
            has_planet_flag = amaryllian_civilian_arcology_setup
        }
        localization_key = amaryllian_district_arcology_civilian_industry_setup
    }
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_civilian_arcology_setup
            }
        }
        localization_key = amaryllian_district_arcology_civilian_industry
    }
}

defined_text = {
    name = GetDistrictName_farming
    text = {
        trigger = {
            has_planet_flag = amaryllian_farming_arcology_setup
        }
        localization_key = amaryllian_district_arcology_farming_industry_setup
    }
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_farming_arcology_setup
            }
        }
        localization_key = amaryllian_district_arcology_farming_industry
    }
}

defined_text = {
    name = GetDistrictName_fortress
    text = {
        trigger = {
            has_planet_flag = amaryllian_fortress_arcology_setup
        }
        localization_key = amaryllian_district_arcology_fortress_industry_setup
    }
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_fortress_arcology_setup
            }
        }
        localization_key = amaryllian_district_arcology_fortress_industry
    }
}

defined_text = {
    name = GetDistrictName_research
    text = {
        trigger = {
            has_planet_flag = amaryllian_research_arcology_setup
        }
        localization_key = amaryllian_district_arcology_research_industry_setup
    }
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_research_arcology_setup
            }
        }
        localization_key = amaryllian_district_arcology_research_industry
    }
}

defined_text = {
    name = GetDistrictName_bureaucratic
    text = {
        trigger = {
            has_planet_flag = amaryllian_bureaucratic_arcology_setup
        }
        localization_key = amaryllian_district_arcology_bureaucratic_industry_setup
    }
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_bureaucratic_arcology_setup
            }
        }
        localization_key = amaryllian_district_arcology_bureaucratic_industry
    }
}

defined_text = {
    name = GetDistrictName_refinery
    text = {
        trigger = {
            has_planet_flag = amaryllian_refinery_arcology_setup
        }
        localization_key = amaryllian_district_arcology_refinery_industry_setup
    }
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_refinery_arcology_setup
            }
        }
        localization_key = amaryllian_district_arcology_refinery_industry
    }
}

defined_text = {
    name = GetDistrictName_trade
    text = {
        trigger = {
            has_planet_flag = amaryllian_trade_arcology_setup
        }
        localization_key = amaryllian_district_arcology_trade_industry_setup
    }
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_trade_arcology_setup
            }
        }
        localization_key = amaryllian_district_arcology_trade_industry
    }
}

defined_text = {
    name = GetDistrictName_mining
    text = {
        trigger = {
            has_planet_flag = amaryllian_mining_arcology_setup
        }
        localization_key = amaryllian_district_arcology_mining_industry_setup
    }
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_mining_arcology_setup
            }
        }
        localization_key = amaryllian_district_arcology_mining_industry
    }
}

defined_text = {
    name = GetDistrictName_generator
    text = {
        trigger = {
            has_planet_flag = amaryllian_generator_arcology_setup
        }
        localization_key = amaryllian_district_arcology_generator_industry_setup
    }
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_generator_arcology_setup
            }
        }
        localization_key = amaryllian_district_arcology_generator_industry
    }
}

defined_text = {
    name = GetDistrictName_sanctuary
    text = {
        trigger = {
            has_planet_flag = amaryllian_sanctuary_arcology_setup
        }
        localization_key = amaryllian_district_arcology_sanctuary_industry_setup
    }
    text = {
        trigger = {
            NOT = {
                has_planet_flag = amaryllian_sanctuary_arcology_setup
            }
        }
        localization_key = amaryllian_district_arcology_sanctuary_industry
    }
}

Code:
amaryllian_or_operator:0 "or"
amaryllian_col_grand_habitat_arcology:0 "Grand Arcology"
amaryllian_col_grand_habitat_arcology_desc:0 "An artificial deep-space arcology dedicated to fulfilling needs of an empire."
amaryllian_decision_grand_arcology_project_modifier:0 "$amaryllian_col_grand_habitat_arcology$"
amaryllian_decision_grand_arcology_project_modifier_desc:0 "$amaryllian_col_grand_habitat_arcology_desc$"
amaryllian_decision_grand_arcology_designer:0 "Arcology Designer"
amaryllian_decision_grand_arcology_designer_desc:0 "$NEW_DESIGN$: $amaryllian_decision_arcology_project$ $amaryllian_or_operator$ $amaryllian_decision_arcology_project_grand$"
amaryllian_decision_grand_arcology_designer_requirements:0 "$TRIGGER_REQUIRES$ $GOVERNMENT_CIVICS$: §Y$civic_amaryllian_habitat$!"
amaryllian_decision_grand_arcology_designer_effects:0 "$amaryllian_decision_grand_arcology_designer_effects_short$"
amaryllian_decision_grand_arcology_designer_effects_short:0 "Select districts to be available on a §Y$habitat_0$§! after completion of §Y$amaryllian_decision_arcology_project$§!."
amaryllian_gettechinfo_arms_yes:0 ""
amaryllian_gettechinfo_arms_no:0 " - §R$MISSING_TECHNOLOGY$§"
amaryllian_gettechinfo_civilian_yes:0 ""
amaryllian_gettechinfo_civilian_no:0 " - §R$MISSING_TECHNOLOGY$§"
amaryllian_gettechinfo_farming_yes:0 ""
amaryllian_gettechinfo_farming_no:0 " - §R$MISSING_TECHNOLOGY$§"
amaryllian_gettechinfo_fortress_yes:0 ""
amaryllian_gettechinfo_fortress_no:0 " - §R$MISSING_TECHNOLOGY$§"
amaryllian_gettechinfo_research_yes:0 ""
amaryllian_gettechinfo_research_no:0 " - §R$MISSING_TECHNOLOGY$§"
amaryllian_gettechinfo_bureaucratic_yes:0 ""
amaryllian_gettechinfo_bureaucratic_no:0 " - §R$MISSING_TECHNOLOGY$§"
amaryllian_gettechinfo_refinery_yes:0 ""
amaryllian_gettechinfo_refinery_no:0 " - §R$MISSING_TECHNOLOGY$§"
amaryllian_gettechinfo_trade_yes:0 ""
amaryllian_gettechinfo_trade_no:0 " - §R$MISSING_TECHNOLOGY$§"
amaryllian_gettechinfo_mining_yes:0 ""
amaryllian_gettechinfo_mining_no:0 " - §R$MISSING_TECHNOLOGY$§"
amaryllian_gettechinfo_generator_yes:0 ""
amaryllian_gettechinfo_generator_no:0 " - §R$MISSING_TECHNOLOGY$§"
amaryllian_gettechinfo_sanctuary_yes:0 ""
amaryllian_gettechinfo_sanctuary_no:0 " - §R$MISSING_TECHNOLOGY$§"
amaryllian_decision_arcology_project_grand:0 "Grand Arcology Project"
amaryllian_decision_arcology_project:0 "Arcology Project"
amaryllian_decision_arcology_project_desc:0 "$amaryllian_col_grand_habitat_arcology_desc$"
amaryllian_decision_grand_arcology_project:0 "$amaryllian_decision_arcology_project$"
amaryllian_decision_grand_arcology_project_desc:0 "$amaryllian_col_grand_habitat_arcology_desc$"
amaryllian_decision_grand_arcology_project_requirements:0 "$TRIGGER_REQUIRES$\n\n$ASCENSION_PERKS$:\n$amaryllian_decision_arcology_project_trigger_AP_1$ §Y$ap_voidborn$§! ($amaryllian_tech_habitat_arcology$) §G$amaryllian_or_operator$§!\n$amaryllian_decision_arcology_project_trigger_AP_2$ §Y$ap_amaryllian_voidchildren$§! ($amaryllian_col_grand_habitat_arcology$)\n\n$habitat_0$:\n$amaryllian_decision_arcology_project_trigger_habitat_1$ §Y$habitat_1$§! ($amaryllian_tech_habitat_arcology$) §G$amaryllian_or_operator$§!\n$amaryllian_decision_arcology_project_trigger_habitat_2$ §Y$habitat_2$§! §G$amaryllian_or_operator$§! §Y$amaryllian_tech_habitat_arcology$§! ($amaryllian_col_grand_habitat_arcology$)\n\n$DISTRICTS$:\n$amaryllian_decision_arcology_project_trigger_districts$ §Y$CAN_ADD_SPACEPORT_MODULE_NO_SLOTS$§!\n\n$amaryllian_decision_grand_arcology_designer$:\n$amaryllian_decision_arcology_project_trigger_designer$ §Y$IS_STRING$ $DONE$§!\n$amaryllian_decision_arcology_project_trigger_lock$ £time£ §Y$READY_TOOLTIP_HEADER$: §!$amaryllian_GetInfo_lock_yes$\n\n$amaryllian_decision_grand_arcology_project_requirements_cost$"
amaryllian_decision_grand_arcology_project_requirements_cost:0 "$COST$ ($BASE$):\n$amaryllian_decision_arcology_project$:\n£minerals£§Y10000§! £influence£§Y100§! £alloys£§Y500§! £time£§Y1800§!\n$amaryllian_decision_arcology_project_grand$:\n£minerals£§Y15000§! £influence£§Y100§! £alloys£§Y750§! £time£§Y1800§!\n$amaryllian_tech_habitat_arcology$ -> $amaryllian_col_grand_habitat_arcology$:\n£minerals£§Y5000§! £alloys£§Y250§! £time£§Y1800§!"
amaryllian_decision_grand_arcology_project_effects:0 "$amaryllian_decision_grand_arcology_project_effects_short$"
amaryllian_decision_grand_arcology_project_effects_short:0 "Turns colony into a specialised §Y$habitat_0$§!, increasing £housing£ §Y$PLANET_HOUSING_TITLE$§!, §YResource Production§! and §YPop Growth§!."
amaryllian_decision_arcology_project_trigger_AP_1:0 "[this.GetInfo_trigger_AP_1]"
amaryllian_decision_arcology_project_trigger_AP_2:0 "[this.GetInfo_trigger_AP_2]"
amaryllian_decision_arcology_project_trigger_habitat_1:0 "[this.GetInfo_trigger_habitat_1]"
amaryllian_decision_arcology_project_trigger_habitat_2:0 "[this.GetInfo_trigger_habitat_2]"
amaryllian_decision_arcology_project_trigger_districts:0 "[this.GetInfo_trigger_districts]"
amaryllian_decision_arcology_project_trigger_designer:0 "[this.GetInfo_trigger_designer]"
amaryllian_decision_arcology_project_trigger_lock:0 "[this.GetInfo_trigger_lock]"
amaryllian_decision_arcology_project_trigger_partial:0 "£unity£"
amaryllian_decision_arcology_project_trigger_yes:0 "£trigger_yes£"
amaryllian_decision_arcology_project_trigger_no:0 "£trigger_no£"
amaryllian.900.name:0 "[FROM.planet.GetName] $amaryllian_tech_habitat_arcology$: $NEW_DESIGN$"
amaryllian.900.desc:0 "$amaryllian_decision_grand_arcology_designer_effects_short$ All districts of other types will be §Rdemolished§!.\n\n1 $DISTRICT$ for $amaryllian_tech_habitat_arcology$, 4 $DISTRICTS$ for $amaryllian_col_grand_habitat_arcology$."
amaryllian.900.a:0 "£alloys£ [this.GetDistrictName_arms][this.GetTechInfo_arms]"
amaryllian.900.b:0 "£consumer_goods£ [this.GetDistrictName_civilian][this.GetTechInfo_civilian]"
amaryllian.900.c:0 "£food£ [this.GetDistrictName_farming][this.GetTechInfo_farming]"
amaryllian.900.d:0 "£job_soldier£ [this.GetDistrictName_fortress][this.GetTechInfo_fortress]"
amaryllian.900.e:0 "£job_researcher£ [this.GetDistrictName_research][this.GetTechInfo_research]"
amaryllian.900.f:0 "£job_bureaucrat£ [this.GetDistrictName_bureaucratic][this.GetTechInfo_bureaucratic]"
amaryllian.900.g:0 "£amaryllian_strategic£ [this.GetDistrictName_refinery][this.GetTechInfo_refinery]"
amaryllian.900.h:0 "£trade_value£ [this.GetDistrictName_trade][this.GetTechInfo_trade]"
amaryllian.900.i:0 "£minerals£ [this.GetDistrictName_mining][this.GetTechInfo_mining]"
amaryllian.900.j:0 "£energy£ [this.GetDistrictName_generator][this.GetTechInfo_generator]"
amaryllian.900.k:0 "£job_bio_trophy£ [this.GetDistrictName_sanctuary][this.GetTechInfo_sanctuary]"
amaryllian.900.x:0 "§R$CLEAR$§!"
amaryllian.900.y:0 "£time£ §Y$READY_TOOLTIP_HEADER$: §![this.GetInfo_lock]"
amaryllian.900.z:0 "§G$SAVE$§!"
amaryllian_GetInfo_lock_no:0 "§Y$NOT_ACTIVE$§!"
amaryllian_GetInfo_lock_yes:0 "§H$ACTIVE$§!"
amaryllian_district_arcology_civilian_industry_setup:0 "§G$amaryllian_district_arcology_civilian_industry$§!"
amaryllian_district_arcology_arms_industry_setup:0 "§G$amaryllian_district_arcology_arms_industry$§!"
amaryllian_district_arcology_farming_industry_setup:0 "§G$amaryllian_district_arcology_farming_industry$§!"
amaryllian_district_arcology_fortress_industry_setup:0 "§G$amaryllian_district_arcology_fortress_industry$§!"
amaryllian_district_arcology_research_industry_setup:0 "§G$amaryllian_district_arcology_research_industry$§!"
amaryllian_district_arcology_bureaucratic_industry_setup:0 "§G$amaryllian_district_arcology_bureaucratic_industry$§!"
amaryllian_district_arcology_refinery_industry_setup:0 "§G$amaryllian_district_arcology_refinery_industry$§!"
amaryllian_district_arcology_mining_industry_setup:0 "§G$amaryllian_district_arcology_mining_industry$§!"
amaryllian_district_arcology_trade_industry_setup:0 "§G$amaryllian_district_arcology_trade_industry$§!"
amaryllian_district_arcology_generator_industry_setup:0 "§G$amaryllian_district_arcology_generator_industry$§!"
amaryllian_district_arcology_sanctuary_industry_setup:0 "§G$amaryllian_district_arcology_sanctuary_industry$§!"

Code:
# Grand Arcology designer
planet_event = {
    id = amaryllian.900
    title = amaryllian.900.name
    desc = amaryllian.900.desc
    picture = GFX_evt_ancient_databank
    location = root
    is_triggered_only = yes
    #    arms
    option = {
        name = amaryllian.900.a
        hidden_effect = {
            if = {
                limit = {
                    NOR = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                        check_variable = {
                            which = "amaryllian_arcology_setup_num"
                            value >= 4
                        }
                        has_planet_flag = amaryllian_arms_arcology_setup
                    }
                    OR = {
                        has_planet_flag = amaryllian_arms_arcology
                        owner = {
                            has_technology = amaryllian_tech_arms_industry
                        }
                    }
                }
                set_planet_flag = amaryllian_arms_arcology_setup
                change_variable = {
                    which = amaryllian_arcology_setup_num
                    value = 1
                }
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    #    civilian
    option = {
        name = amaryllian.900.b
        trigger = {
            OR = {
                has_planet_flag = amaryllian_civilian_arcology
                owner = {
                    OR = {
                        is_gestalt = no
                        has_valid_civic = civic_machine_servitor
                    }
                }
            }
        }
        hidden_effect = {
            if = {
                limit = {
                    NOR = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                        check_variable = {
                            which = "amaryllian_arcology_setup_num"
                            value >= 4
                        }
                        has_planet_flag = amaryllian_civilian_arcology_setup
                    }
                    OR = {
                        has_planet_flag = amaryllian_civilian_arcology
                        owner = {
                            has_technology = amaryllian_tech_civilian_industry
                        }
                    }
                }
                set_planet_flag = amaryllian_civilian_arcology_setup
                change_variable = {
                    which = amaryllian_arcology_setup_num
                    value = 1
                }
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    #    farming
    option = {
        name = amaryllian.900.c
        trigger = {
            OR = {
                has_planet_flag = amaryllian_farming_arcology
                owner = {
                    OR = {
                        country_uses_food = yes
                        has_ascension_perk = ap_synthetic_evolution
                    }
                }
            }
        }
        hidden_effect = {
            if = {
                limit = {
                    NOR = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                        check_variable = {
                            which = "amaryllian_arcology_setup_num"
                            value >= 4
                        }
                        has_planet_flag = amaryllian_farming_arcology_setup
                    }
                    OR = {
                        has_planet_flag = amaryllian_farming_arcology
                        owner = {
                            has_technology = amaryllian_tech_farming_industry
                        }
                    }
                }
                set_planet_flag = amaryllian_farming_arcology_setup
                change_variable = {
                    which = amaryllian_arcology_setup_num
                    value = 1
                }
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    #    fortress
    option = {
        name = amaryllian.900.d
        hidden_effect = {
            if = {
                limit = {
                    NOR = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                        check_variable = {
                            which = "amaryllian_arcology_setup_num"
                            value >= 4
                        }
                        has_planet_flag = amaryllian_fortress_arcology_setup
                    }
                    OR = {
                        has_planet_flag = amaryllian_fortress_arcology
                        owner = {
                            has_technology = amaryllian_tech_fortress_industry
                        }
                    }
                }
                set_planet_flag = amaryllian_fortress_arcology_setup
                change_variable = {
                    which = amaryllian_arcology_setup_num
                    value = 1
                }
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    #    research
    option = {
        name = amaryllian.900.e
        hidden_effect = {
            if = {
                limit = {
                    NOR = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                        check_variable = {
                            which = "amaryllian_arcology_setup_num"
                            value >= 4
                        }
                        has_planet_flag = amaryllian_research_arcology_setup
                    }
                    OR = {
                        has_planet_flag = amaryllian_research_arcology
                        owner = {
                            has_technology = amaryllian_tech_research_industry
                        }
                    }
                }
                set_planet_flag = amaryllian_research_arcology_setup
                change_variable = {
                    which = amaryllian_arcology_setup_num
                    value = 1
                }
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    #    bureaucratic
    option = {
        name = amaryllian.900.f
        hidden_effect = {
            if = {
                limit = {
                    NOT = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                    }
                    OR = {
                        has_planet_flag = amaryllian_bureaucratic_arcology
                        owner = {
                            has_technology = amaryllian_tech_bureaucratic_industry
                        }
                    }
                    NOR = {
                        check_variable = {
                            which = "amaryllian_arcology_setup_num"
                            value >= 4
                        }
                        has_planet_flag = amaryllian_bureaucratic_arcology_setup
                    }
                }
                set_planet_flag = amaryllian_bureaucratic_arcology_setup
                change_variable = {
                    which = amaryllian_arcology_setup_num
                    value = 1
                }
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    #    refinery
    option = {
        name = amaryllian.900.g
        hidden_effect = {
            if = {
                limit = {
                    NOT = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                    }
                    OR = {
                        has_planet_flag = amaryllian_refinery_arcology
                        owner = {
                            has_technology = amaryllian_tech_refinery_industry
                            OR = {
                                has_technology = "tech_volatile_motes"
                                has_technology = "tech_rare_crystals"
                                has_technology = "tech_exotic_gases"
                            }
                        }
                    }
                    NOR = {
                        check_variable = {
                            which = "amaryllian_arcology_setup_num"
                            value >= 4
                        }
                        has_planet_flag = amaryllian_refinery_arcology_setup
                    }
                }
                set_planet_flag = amaryllian_refinery_arcology_setup
                change_variable = {
                    which = amaryllian_arcology_setup_num
                    value = 1
                }
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    #    trade
    option = {
        name = amaryllian.900.h
        trigger = {
            OR = {
                has_planet_flag = amaryllian_trade_arcology
                owner = {
                    is_gestalt = no
                }
            }
        }
        hidden_effect = {
            if = {
                limit = {
                    NOR = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                        check_variable = {
                            which = "amaryllian_arcology_setup_num"
                            value >= 4
                        }
                        has_planet_flag = amaryllian_trade_arcology_setup
                    }
                    OR = {
                        has_planet_flag = amaryllian_trade_arcology
                        owner = {
                            has_technology = amaryllian_tech_trade_industry
                        }
                    }
                }
                set_planet_flag = amaryllian_trade_arcology_setup
                change_variable = {
                    which = amaryllian_arcology_setup_num
                    value = 1
                }
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    #    mining
    option = {
        name = amaryllian.900.i
        trigger = {
            OR = {
                has_planet_flag = amaryllian_mining_arcology
                has_planet_flag = mining_habitat
                # Planetary Diversity - Planetary Habitats
                has_planet_flag = pd_mining_hab
                has_planet_flag = pd_mining2_hab
            }
        }
        hidden_effect = {
            if = {
                limit = {
                    NOR = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                        check_variable = {
                            which = "amaryllian_arcology_setup_num"
                            value >= 4
                        }
                        has_planet_flag = amaryllian_mining_arcology_setup
                    }
                    OR = {
                        has_planet_flag = amaryllian_mining_arcology
                        owner = {
                            has_technology = amaryllian_tech_mining_industry
                        }
                    }
                }
                set_planet_flag = amaryllian_mining_arcology_setup
                change_variable = {
                    which = amaryllian_arcology_setup_num
                    value = 1
                }
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    #    generator
    option = {
        name = amaryllian.900.j
        trigger = {
            OR = {
                owner = {
                    is_gestalt = yes
                }
                has_planet_flag = amaryllian_generator_arcology
                has_planet_flag = energy_habitat
                # Planetary Diversity - Planetary Habitats
                has_planet_flag = pd_energy_hab
                has_planet_flag = pd_energy2_hab
            }
        }
        hidden_effect = {
            if = {
                limit = {
                    NOR = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                        check_variable = {
                            which = "amaryllian_arcology_setup_num"
                            value >= 4
                        }
                        has_planet_flag = amaryllian_generator_arcology_setup
                    }
                    OR = {
                        has_planet_flag = amaryllian_generator_arcology
                        owner = {
                            has_technology = amaryllian_tech_generator_industry
                        }
                    }
                }
                set_planet_flag = amaryllian_generator_arcology_setup
                change_variable = {
                    which = amaryllian_arcology_setup_num
                    value = 1
                }
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    #    sanctuary
    option = {
        name = amaryllian.900.k
        trigger = {
            OR = {
                has_planet_flag = amaryllian_sanctuary_arcology
                owner = {
                    has_valid_civic = civic_machine_servitor
                }
            }
        }
        hidden_effect = {
            if = {
                limit = {
                    NOR = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                        check_variable = {
                            which = "amaryllian_arcology_setup_num"
                            value >= 4
                        }
                        has_planet_flag = amaryllian_sanctuary_arcology_setup
                    }
                    OR = {
                        has_planet_flag = amaryllian_sanctuary_arcology
                        owner = {
                            has_technology = amaryllian_tech_sanctuary_industry
                        }
                    }
                }
                set_planet_flag = amaryllian_sanctuary_arcology_setup
                change_variable = {
                    which = amaryllian_arcology_setup_num
                    value = 1
                }
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
                break = yes
            }
        }
    }
    #    Clear
    option = {
        name = amaryllian.900.x
        hidden_effect = {
            if = {
                limit = {
                    NOT = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                    }
                }
                set_variable = {
                    which = amaryllian_arcology_setup_num
                    value = 0
                }
                remove_planet_flag = amaryllian_arms_arcology_setup
                remove_planet_flag = amaryllian_civilian_arcology_setup
                remove_planet_flag = amaryllian_farming_arcology_setup
                remove_planet_flag = amaryllian_fortress_arcology_setup
                remove_planet_flag = amaryllian_research_arcology_setup
                remove_planet_flag = amaryllian_bureaucratic_arcology_setup
                remove_planet_flag = amaryllian_refinery_arcology_setup
                remove_planet_flag = amaryllian_trade_arcology_setup
                remove_planet_flag = amaryllian_mining_arcology_setup
                remove_planet_flag = amaryllian_generator_arcology_setup
                remove_planet_flag = amaryllian_sanctuary_arcology_setup
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
            }
        }
    }
    #    Lock
    option = {
        name = amaryllian.900.y
        hidden_effect = {
            if = {
                limit = {
                    NOT = {
                        has_planet_flag = amaryllian_decision_grand_arcology_designer_locked
                    }
                    OR = {
                        check_variable = {
                            which = amaryllian_arcology_setup_num
                            value = 1
                        }
                        AND = {
                            owner = {
                                has_ascension_perk = ap_amaryllian_voidchildren
                            }
                            check_variable = {
                                which = amaryllian_arcology_setup_num
                                value = 4
                            }
                        }
                    }
                }
                set_timed_planet_flag = {
                    flag = amaryllian_decision_grand_arcology_designer_locked
                    days = 90
                }
                planet_event = {
                    id = amaryllian.900
                    days = 0
                    random = 0
                }
            }
            else = {
                planet_event = {
                    id = amaryllian.900
                    days = 0
                }
            }
        }
    }
    #    Save
    option = {
        name = amaryllian.900.z
    }
}

1607302021776.png


Not sure if this is of any help.
 
Last edited:
Not sure if this is of any help.
It absolutely is, thank you!
I'm half asleep right now (only realised this as I'd made about a dozen rookie errors in the last 30 mins trying to cycle through and scope to each enslaved species and set its slavery type to indentured) but will definitely re-read this all tomorrow!

1607312024254.png

Got it working in the end, though that text is definitely going to need a proof or re-write tomorrow, tenses are inconsistent and generally feels tonally 'off' -
Edit: just noticed the tooltip can only scope to the faction for [<anything>.GetName] whilst the popup can correctly scope to the country for the title and hidden_effect is an invalid token in faction actions, sadly. Might just rewrite the names tomorrow.

One thing I do need to look in to is combining different description/text strings - rahter than duplicating and swapping the whole thing out (as i've done in a few places currently) - e.g. the first sentence in the above screenshot should, for a megacorp-authority, probably read be "presiding over a meeting with the board of directors" rather than council - something to investigate later.

Also check if CW Tools gives you scopes.
I'm ashamed to say I didnt actually know about CW Tools till you mentioned it ... I've got a a primitive highlighting ruleset in notepad++, made a few test events and been alt-tabbing to the trigger docs/wiki all this time, didnt think to check if anyone had made tools as it's all just .txt *facepalms*

One such test event, prints below string to desc in a window:
1607310034823.png
 
Last edited:
Sadly, when it comes to localisation files CWTools won't check if scopes are right in sripted_loc strings (getname), it only checks if syntax is correct, oh well.

1607400215221.png


BTW I maintain historical and current list of triggers, effects and modifiers https://forum.paradoxplaza.com/foru...laris-triggers-modifiers-and-effects.1428894/

CWTools Paradox Forum thread: https://forum.paradoxplaza.com/foru...mod-validating-extension-for-vs-code.1066033/

Installing the CWTools extension for VSCode
1. Install VSCode: https://code.visualstudio.com/docs/setup/setup-overview
2. Search the extensions marketplace for "Paradox"
3. Install "Paradox Language Services with CWTools"
4. Open the Stellaris folder containing your mods. This can be one of: * "C:\Users\name\Paradox Interactive\Stellaris" * "C:\Program Files(x86)\Steam\steamapps\common\Stellaris" or on linux * "/home/name/.local/share/Paradox Interactive/Stellars" * "/home/name/.steam/steam/steamapps/common/Stellaris"
5. Edit files and watch syntax errors show up when you make mistakes
6. Wait up to a minute for the extension to scan all your mods and find all errors
7. Optionally, install the syntax highlighting plugin https://marketplace.visualstudio.com/items?itemName=tboby.paradox-syntax

Tip: you can open one mod folder at a time instead of whole Stellaris/mod .
 
  • 1
Reactions: