Version

This article is for the PC version of Stellaris only.
This page is about how to modify existing and how to create new Factions.
Factions are defined at "common/pop_faction_types/xxx.txt".
Data Structure[]
Property | Description |
---|---|
election_header = <GFX entry key> | Determines the header texture to be attached to the leader entry in democratic election window.
|
guiding_ethic = <ethic key> | Determines the guiding ethic of this faction.
By default, only pops with of this ethic can join the faction. |
use_guiding_ethic_as_pop_filter = <yes/no> | If no, pops without the guiding ethic can join the faction. |
unique = <yes/no> | If yes, only one instance of this faction can exist in an Empire. Vanilla factions always have "yes". |
support_multiplier = <float> | ![]() |
resources | An Economy Unit to determine the resource production of this faction. The production is mulitplied by faction support rate and faction approval.
Vanilla factions always have economy category |
is_potential | A block of Conditions to determine should an Empire have this faction.
Vanilla factions always exclude |
parameters | Pre-defined parameters to be called by Faction Actions.
Vanilla always define it like this, making parameters = { empire = { type = country valid_objects = { is_same_value = root } } } |
can_join_pre_triggers | A block of Pseudo-Conditions to determine can a Pop join this faction. Only the following yes-or-no questions are allowed. Vanilla always have is_enslaved = no and is_being_purged = no . Without the pre-triggers, the whole set of conditions will be evaluated once for each of the thousands of Pops in the galaxy, which can be performance intensive.
|
can_join_faction | A block of Conditions to determine can a Pop join this faction. (Pop scope) |
attraction | Determines the attraction to Pops of this faction.
Vanilla factions always have 100 base attraction, x1.25 attraction to Pops with citizenship rights, x1.25 if faction leader is the current ruler, and x0.75 if faction has no leaders. However, a Pop can only meet the requirements of up to one faction at a time while faction leader is chosen randomly and cannot be unassigned and will be randomly chosen again if current leader is fired or diseased, making this field entirely irrelevant. |
leader | Determines how likely a leader will be randomly chosen as the leader of this faction. Vanilla always have 100 base weight and x0 for event leaders. Supermacist factions will exclude alien leaders as well, or an alien talking about human superiority can be immersion breaking. If no leaders have a weight greater than 0, the faction will still be created but remain leaderless for the rest of the game. |
demand | An entry of a faction issue. Multiple allowed. |
|
The flavor text part of this issue. The title can change based on if it's fulfilled or not. |
|
The faction approval impact of this issue. |
|
The former block of Conditions determines should this faction have this issue, and if yes, the later block of Conditions determines is this issue fulfilled. (Faction scope, use owner to scope to the Empire)
|
on_create | A block of Effects to be executed to the faction when this faction is created. Vanilla always have pop_faction_event = { id = factions.1 } , which calls the event to tell the player "a faction named [Faction] led by a leader [Leader] is created". (Faction scope)
|
on_destroy | A block of Effects to be executed to the Empire when this faction is dissolved. Vanilla always remove the "Ethic Promoted" and "Ethic Supressed" static modifiers for the Empire. (Country scope) |
actions | A list of entries to define actions an Empire can take to this faction. |
|
The flavor text part of this faction action. |
|
The cost of this action. |
|
The former block of Conditions determines should this faction have this action listed, and if yes, the later block of Conditions determines can this action be performed. (Faction scope) |
|
A block of Effects to be executed when this action is taken. (Faction scope) |
|
How likely the AI will use this action. |
Faction Example[]
Imperialist Faction[]
imperialist = { election_header = "GFX_faction_header_yellow" guiding_ethic = ethic_militarist #only pops of this ethic can join the faction unique = yes support_multiplier = 1 resources = { category = pop_factions produces = { unity = 0.5 } } is_potential = { is_faction_allowed = yes if = { limit = { has_faction = imperialist any_pop_faction = { is_pop_faction_type = imperialist num_pops >= 5 } } } else = { count_owned_pop = { count >= 5 limit = { has_ethic = ethic_militarist } } } } parameters = { empire = { type = country valid_objects = { is_same_value = root } } } can_join_pre_triggers = { is_enslaved = no is_being_purged = no } can_join_faction = { is_shackled_robot = no can_think = yes } attraction = { base = 100 modifier = { factor = 1.25 exists = from from = { exists = leader leader = { leader_class = ruler } } } modifier = { factor = 0.75 exists = from from = { NOT = { exists = leader } } } modifier = { factor = 1.25 has_citizenship_rights = yes } } leader = { base = 100 modifier = { factor = 0.0 is_event_leader = yes } } demand = { title = "FACTION_OUTRAGED_GC" unfulfilled_title = "FACTION_OUTRAGED_GC" desc = "FACTION_OUTRAGED_GC_DESC" fulfilled_effect = -20 unfulfilled_effect = -0.001 potential = { exists = owner owner = { has_country_flag = faction_militarist_outraged_gc } } trigger = { owner = { has_country_flag = faction_militarist_outraged_gc } } } demand = { title = "IMPERIALIST_PHILOSOPHY" unfulfilled_title = "IMPERIALIST_NO_PHILOSOPHY" desc = "IMPERIALIST_PHILOSOPHY_DESC" unfulfilled_effect = -30 fulfilled_effect = 0.001 potential = { exists = owner owner = { any_relation = { has_communications = root.owner is_country_type = default NOT = { exists = overlord } } } } trigger = { owner = { OR = { has_policy_flag = unrestricted_wars has_policy_flag = liberation_wars } } } } demand = { title = "IMPERIALIST_CONQUEST" unfulfilled_title = "IMPERIALIST_NO_CONQUEST" desc = "IMPERIALIST_CONQUEST_DESC" fulfilled_effect = 10 unfulfilled_effect = -0.001 potential = { exists = owner owner = { any_relation = { has_communications = root.owner is_country_type = default NOT = { exists = overlord } } } } trigger = { owner = { has_country_flag = imperialist_conquest_timed_flag } } } demand = { title = "SUPREMACIST_FANATIC_PURIFIERS" unfulfilled_title = "SUPREMACIST_NOT_FANATIC_PURIFIERS" desc = "SUPREMACIST_FANATIC_PURIFIERS_DESC" fulfilled_effect = 10 unfulfilled_effect = -0.001 potential = { exists = owner owner = { has_valid_civic = civic_fanatic_purifiers } } trigger = { owner = { has_valid_civic = civic_fanatic_purifiers } } } demand = { title = "IMPERIALIST_RIVALS1" unfulfilled_title = "IMPERIALIST_FEW_RIVALS1" desc = "IMPERIALIST_RIVALS_DESC1" fulfilled_effect = 5 unfulfilled_effect = -5 potential = { exists = owner owner = { num_communications > 2 NOT = { has_valid_civic = civic_fanatic_purifiers } num_rivals < 2 } } trigger = { owner = { num_rivals > 0 } } } demand = { title = "IMPERIALIST_RIVALS2" unfulfilled_title = "IMPERIALIST_FEW_RIVALS2" desc = "IMPERIALIST_RIVALS_DESC2" fulfilled_effect = 10 unfulfilled_effect = -0.001 potential = { exists = owner owner = { num_communications > 2 NOT = { has_valid_civic = civic_fanatic_purifiers } num_rivals = 2 } } trigger = { owner = { num_rivals > 1 } } } demand = { title = "IMPERIALIST_RIVALS3" unfulfilled_title = "IMPERIALIST_FEW_RIVALS3" desc = "IMPERIALIST_RIVALS_DESC3" fulfilled_effect = 15 unfulfilled_effect = -0.001 potential = { exists = owner owner = { num_communications > 2 NOT = { has_valid_civic = civic_fanatic_purifiers } num_rivals > 2 } } trigger = { owner = { num_rivals > 2 } } } demand = { title = "IMPERIALIST_OVERLORD" #Imperial Hegemony unfulfilled_title = "IMPERIALIST_NOT_OVERLORD" desc = "IMPERIALIST_OVERLORD_DESC" fulfilled_effect = 5 unfulfilled_effect = -0.001 potential = { exists = owner owner = { num_communications > 2 NOT = { has_valid_civic = civic_fanatic_purifiers } } } trigger = { OR = { owner = { is_overlord = yes } owner = { has_federation = yes federation = { has_federation_type = hegemony_federation } is_federation_leader = yes } } } } demand = { title = "IMPERIALIST_UNDERLING" unfulfilled_title = "IMPERIALIST_NOT_UNDERLING" desc = "IMPERIALIST_UNDERLING_DESC" unfulfilled_effect = -25 fulfilled_effect = 0.001 potential = { exists = owner owner = { has_overlord_dlc = no is_subject = yes } } trigger = { owner = { is_subject = no } } } demand = { title = "IMPERIALIST_BULWARK" unfulfilled_title = "IMPERIALIST_NOT_BULWARK" desc = "IMPERIALIST_BULWARK_DESC" unfulfilled_effect = -25 fulfilled_effect = 0.001 potential = { exists = owner owner = { has_overlord_dlc = yes is_subject = yes is_specialist_subject_type = { TYPE = bulwark } } } trigger = { owner = { OR = { is_subject = no is_specialist_subject_type = { TYPE = bulwark } } } } } demand = { title = "IMPERIALIST_SLAYER" unfulfilled_title = "IMPRERIALIST_NOT_SLAYER" desc = "IMPERIALIST_SLAYER_DESC" fulfilled_effect = 10 unfulfilled_effect = -0.001 potential = { exists = owner owner = { host_has_dlc = "Leviathans Story Pack" OR = { has_country_flag = killed_guardian any_country = { is_guardian_country = yes has_communications = prev } } } } trigger = { owner = { has_country_flag = killed_guardian } } } demand = { title = "IMPERIALIST_MILITARY_APPLICATIONS" unfulfilled_title = "IMPERIALIST_NO_MILITARY_APPLICATIONS" desc = "IMPERIALIST_MILITARY_APPLICATIONS_DESC" fulfilled_effect = 5 unfulfilled_effect = -0.001 potential = { exists = owner owner = { host_has_dlc = "Ancient Relics Story Pack" has_technology = tech_arcane_deciphering OR = { has_modifier = artifact_find_military_application_army has_modifier = artifact_find_military_application_shield_damage has_modifier = artifact_find_military_application_armor_damage } } } trigger = { owner = { OR = { has_modifier = artifact_find_military_application_army has_modifier = artifact_find_military_application_shield_damage has_modifier = artifact_find_military_application_armor_damage } } } } demand = { title = "IMPERIALIST_PEACEFUL_APPLICATIONS" unfulfilled_title = "IMPERIALIST_NO_PEACEFUL_APPLICATIONS" desc = "IMPERIALIST_PEACEFUL_APPLICATIONS_DESC" unfulfilled_effect = -5 fulfilled_effect = 0.001 potential = { exists = owner owner = { host_has_dlc = "Ancient Relics Story Pack" has_technology = tech_arcane_deciphering OR = { has_modifier = artifact_find_peaceful_application_happy_bios has_modifier = artifact_find_peaceful_application_consumer_goods has_modifier = artifact_find_peaceful_application_amenities has_modifier = artifact_find_peaceful_application_leader_improvement } } } trigger = { owner = { NOR = { has_modifier = artifact_find_peaceful_application_happy_bios has_modifier = artifact_find_peaceful_application_consumer_goods has_modifier = artifact_find_peaceful_application_amenities has_modifier = artifact_find_peaceful_application_leader_improvement } } } } demand = { title = "STRONG_DIPLO_STANCE" unfulfilled_title = "STRONG_DIPLO_STANCE" desc = "STRONG_DIPLO_STANCE_DESC" fulfilled_effect = 10 unfulfilled_effect = -0.001 potential = { exists = owner owner = { is_homicidal = no is_country_type = default OR = { has_policy_flag = diplo_stance_belligerent has_policy_flag = diplo_stance_supremacist } } } trigger = { owner = { OR = { has_policy_flag = diplo_stance_belligerent has_policy_flag = diplo_stance_supremacist } } } } demand = { title = "WEAK_DIPLO_STANCE" unfulfilled_title = "WEAK_DIPLO_STANCE" desc = "WEAK_DIPLO_STANCE_DESC" fulfilled_effect = 0.01 unfulfilled_effect = -10 potential = { exists = owner owner = { is_homicidal = no is_country_type = default has_policy_flag = diplo_stance_cooperative } } trigger = { owner = { NOT = { has_policy_flag = diplo_stance_cooperative } } } } demand = { title = "IMPERIALIST_BENEVOLENT_SUBJUGATION_POLICY" unfulfilled_title = "IMPERIALIST_NO_BENEVOLENT_SUBJUGATION_POLICY" desc = "IMPERIALIST_BENEVOLENT_SUBJUGATION_POLICY_DESC" unfulfilled_effect = -5 fulfilled_effect = 0.001 potential = { exists = owner owner = { is_subject = no has_policy_flag = benevolent_terms } } trigger = { owner = { NOT = { has_policy_flag = benevolent_terms } } } } demand = { title = "IMPERIALIST_OPPRESSIVE_SUBJUGATION_POLICY" unfulfilled_title = "IMPERIALIST_ADOPT_OPPRESSIVE_SUBJUGATION_POLICY" desc = "IMPERIALIST_OPPRESSIVE_SUBJUGATION_POLICY_DESC" fulfilled_effect = 5 unfulfilled_effect = -0.001 potential = { exists = owner owner = { is_subject = no NOT = { has_policy_flag = benevolent_terms } } } trigger = { owner = { has_policy_flag = oppressive_terms } } } on_create = { pop_faction_event = { id = factions.1 } } on_destroy = { if = { limit = { has_modifier = promoted_militarist } remove_modifier = promoted_militarist } if = { limit = { has_modifier = suppressed_militarist } remove_modifier = suppressed_militarist } } actions = { embrace_faction = { title = "EMBRACE_FACTION" description = "EMBRACE_FACTION_DESC" cost = { unity = 5000 } potential = { exists = owner owner = { OR = { is_subject = no NOT = { any_agreement = { agreement_preset = preset_dominion } } } } } valid = { custom_tooltip = { fail_text = EMBRACE_FACTION_COOLDOWN parameter:empire = { NOT = { has_modifier = embraced_faction_timer } } } support > 0.20 parameter:empire = { NOT = { has_ethic = "ethic_fanatic_militarist" } } } effect = { add_modifier = { modifier = embraced_faction days = 3600 } parameter:empire = { shift_ethic = ethic_militarist hidden_effect = { add_modifier = { modifier = embraced_faction_timer days = 3600 } every_pop_faction = { limit = { NOT = { is_same_value = root } } add_modifier = { modifier = embraced_another_faction days = 3600 } } } } hidden_effect = { save_event_target_as = TargetFaction parameter:empire = { every_relation = { limit = { is_ai = no is_country_type = default has_communications = prev has_intel_level = { who = prev category = government level >= 1 } } country_event = { id = factions.2000 } } } } } ai_weight = { base = 1 modifier = { factor = 0 support < 0.50 owner = { has_ethic = ethic_militarist } } modifier = { factor = 0 owner = { has_valid_civic = civic_fanatic_purifiers } } modifier = { factor = 0 NOT = { owner = { exists = ruler ruler = { leader_of_faction = imperialist } } } } modifier = { factor = 0 owner = { count_pop_faction = { count < 4 } } } } } promote_faction = { title = "PROMOTE_FACTION" description = "PROMOTE_FACTION_DESC" potential = { exists = owner parameter:empire = { NOR = { has_modifier = suppressed_militarist has_modifier = promoted_militarist } } } effect = { parameter:empire = { add_modifier = { modifier = promoted_militarist days = -1 } } } ai_weight = { base = 0 } } cancel_promote_faction = { title = "CANCEL_PROMOTE_FACTION" description = "CANCEL_PROMOTE_FACTION_DESC" potential = { exists = owner parameter:empire = { has_modifier = promoted_militarist } } effect = { parameter:empire = { remove_modifier = promoted_militarist } } ai_weight = { base = 0 } } suppress_faction = { title = "SUPPRESS_FACTION" description = "SUPPRESS_FACTION_DESC" potential = { exists = owner parameter:empire = { NOR = { has_modifier = suppressed_militarist has_modifier = promoted_militarist } } } effect = { add_modifier = { modifier = suppressed_faction days = -1 } parameter:empire = { add_modifier = { modifier = suppressed_militarist days = -1 } } } ai_weight = { base = 0 } } cancel_suppress_faction = { title = "CANCEL_SUPPRESS_FACTION" description = "CANCEL_SUPPRESS_FACTION_DESC" potential = { exists = owner parameter:empire = { has_modifier = suppressed_militarist } } effect = { remove_modifier = suppressed_faction parameter:empire = { remove_modifier = suppressed_militarist } } ai_weight = { base = 0 } } } }
The AI will only embrace a faction if current ruler is the faction leader. Also, Fanatic Purifiers will never embrace factions.
Empire | Empire • Ethics • Governments • Civics • Origins • Mandates • Agendas • Traditions • Ascension perks • Edicts • Policies • Relics • Technologies • Custom empires |
Pops | Jobs • Factions |
Leaders | Leaders • Leader traits |
Species | Species • Species traits |
Planets | Planets • Planetary feature • Orbital deposit • Buildings • Districts • Planetary decisions |
Systems | Systems • Starbases • Megastructures • Bypasses • Map |
Fleets | Fleets • Ships • Components |
Land warfare | Armies • Bombardment stance |
Diplomacy | Diplomacy • Federations • Galactic community • Opinion modifiers • Casus Belli • War goals |
Events | Events • Anomalies • Special projects • Archaeological sites |
Gameplay | Gameplay • Defines • Resources • Economy • Game start |
Dynamic modding | Dynamic modding • Effects • Conditions • Scopes • Modifiers • Variables • AI |
Media/localisation | Maya exporter • Graphics • Portraits • Flags • Event pictures • Interface • Icons • Music • Localisation |
Other | Console commands • Save-game editing • Steam Workshop • Modding tutorial |