Tradition modding

本頁面部分全部內容上次核對於2.6版本


Traditions and Ascension Perks are mechanics introduced since Stellaris v1.5.

Tradition Groups[編輯 | 編輯原始碼]

Tradition Groups are defined at "common/tradition_categories/xxx.txt".

Data Structure[編輯 | 編輯原始碼]

  • adoption_bonus - A tradition to be activated when the empire adopted this tradition group.
  • finish_bonus - A tradition to be activated when the empire finished this tradition group. It should give an Ascension Perk slot.
  • traditions - A set of traditions to be included in this tradition group.
  • tradition_swap - Definition of tradition swaps.
    • name - Alternative localisation key used for this Tradition Group if this swap applies.
    • trigger - A block of Conditions to determine should this swap apply. (Country scope)
    • weight - If multiple swaps are valid to an empire, one with the highest weight wins.
  • There is no "ai_weight" for Tradition Groups. AI choose Tradition Groups based on the "ai_weight" of Tradition Group Adoption Effects.

Localisation Keys[編輯 | 編輯原始碼]

  • tradition_example:0 "Example"
  • tradition_example_desc:0 "Let me show you an example."
  • tradition_example_swap:0 "Example Swapped"
  • tradition_example_swap_desc:0 "Let me show you a swapped example."

Tradition Group Example[編輯 | 編輯原始碼]

This example is the Diplomacy tradition group.

tradition_diplomacy = {
	adoption_bonus = "tr_diplomacy_adopt"
	finish_bonus = "tr_diplomacy_finish"
	traditions = {
		"tr_diplomacy_secure_shipping"
		"tr_diplomacy_insider_trading"
		"tr_diplomacy_the_federation"
		"tr_diplomacy_entente_coordination"
		"tr_diplomacy_open_markets"
	}
	tradition_swap = {
		name = tradition_adaptability
		trigger = {
			OR = {
				has_valid_civic = civic_fanatic_purifiers
				has_valid_civic = civic_inwards_perfection
				has_valid_civic = civic_barbaric_despoilers
				has_authority = auth_hive_mind
			}
		}
		weight = {
			factor = 1
		}		
	}
	tradition_swap = {
		name = tradition_versatility
		trigger = {
			has_authority = auth_machine_intelligence
		}
		weight = {
			factor = 1
		}		
	}
}

Dynamic Modding[編輯 | 編輯原始碼]

Sometimes a Tradition Group have different name to different empires, but the game texts will show "Diplomacy Tradition" anyway. There is a scripted_loc named "GetDiplomacyTraditionName" to handle this issue. See Dynamic modding for details.

Traditions[編輯 | 編輯原始碼]

Traditions are defined at "common/traditions/xxx.txt".

Data Structure[編輯 | 編輯原始碼]

  • possible - A block of Conditions to be checked if this empire can adopt this tradition. Frequently used to check if all previous traditions in the group are adopted.
  • modifier - A block of Modifiers to be applied to the empire adopted this tradition. Unlike all other game objects these modifiers will NOT generate a tooltip for this tradition.
  • on_enabled - A block of Effects to be executed when this tradition becomes adopted. Unused in vanilla.
  • tradition_swap - Like Tradition Groups, Traditions also have swap types.
    • name - Alternative key used for this Tradition if this swap applies.
    • inherit_effects - (yes/no) If set to no, this Tradition will have an alternative effect description localisation key if this swap applies. Also, the primary modifier block will be neglected.
    • inherit_icon - (yes/no) If set to no, this Tradition will have an alternative icon if this swap applies.
    • inherit_name - (yes/no) If set to no, this Tradition will use alternative localisation keys for name and description if this swap applies.
    • trigger - A block of Conditions to determine should this swap apply. (Country scope)
    • modifier - A block of Modifiers to take the place of the primary modifier block if this swap applies.
    • weight - If multiple swaps are valid to an empire, one with the highest weight wins.
  • ai_weight - Determines how likely the AI will adopt this Tradition.

Localisation Keys[編輯 | 編輯原始碼]

  • tr_example_the_example:0 "The Example"
  • tr_example_the_example_desc:0 "Effect description of this tradition."
  • tr_example_the_example_delayed:0 "Flavor text of this tradition."
  • tr_example_the_example_swapped:0 "The Swapped Example"
  • tr_example_the_example_swapped_desc:0 "Effect description of this swapped tradition."
  • tr_example_the_example_swapped_delayed:0 "Flavor text of this swapped tradition."

Icon Defination[編輯 | 編輯原始碼]

  • New gfx type must be defined by the following format and put into a file of "interface/xxx.gfx", or this tradition has NO icon.
  • "xxx.dds" file can be anywhere. Putting it into "gfx/interface/icons/traditions/" is recommended.
spriteTypes = {
	spriteType = {
		name = "GFX_tr_example_the_example"
		textureFile = "gfx/interface/icons/traditions/tr_example_the_example.dds"
	}
}

相關的動態修改語句[編輯 | 編輯原始碼]

  • has_tradition = <key> - (Condition) Checks if this empire has this tradition, regardless of its swapped or not. Check only "base traditions" this way.
  • has_non_swapped_tradition = <key> - (Condition) Checks if this empire has this tradition and it's not swapped to another. Check only "base traditions" this way.
  • has_swapped_tradition = <key> - (Condition) Checks if this empire has this tradition and if it's swapped into a specific type. Check only "swapped traditios" this way.
  • add_tradition = <key> - (Effect) Gives the empire a specific tradition. Give "base traditions" only.

Tradition Example[編輯 | 編輯原始碼]

This example is the Diplomacy tradition "The Federation".

tr_diplomacy_the_federation = {
	
	#unlocks federation mechanic
	modifier = {
		envoys_add = 1
	}
	
	tradition_swap = {
		name = tr_adaptability_dietary_enrichment
		inherit_effects = no
		inherit_icon = no
		inherit_name = no
		trigger = {
			OR = {
				has_valid_civic = civic_fanatic_purifiers
				has_valid_civic = civic_inwards_perfection
				has_valid_civic = civic_hive_devouring_swarm
	
				# Barbaric Despoilers can create Martial Alliances and Hegemonies if they have the Federations DLC
				AND = {
					has_valid_civic = civic_barbaric_despoilers
					has_federations_dlc = no
				}
			}
			is_lithoid_empire = no
		}
		modifier = {
			country_food_produces_mult = 0.10
		}
		weight = {
			factor = 1
		}
	}
	
	tradition_swap = {
		name = tr_adaptability_recycling
		inherit_effects = no
		inherit_icon = no
		inherit_name = no
		trigger = {
			OR = {
				has_valid_civic = civic_fanatic_purifiers
				has_valid_civic = civic_inwards_perfection
				has_valid_civic = civic_hive_devouring_swarm
	
				# Barbaric Despoilers can create Martial Alliances and Hegemonies if they have the Federations DLC
				AND = {
					has_valid_civic = civic_barbaric_despoilers
					has_federations_dlc = no
				}
	
			}
			is_lithoid_empire = yes
		}
		modifier = {
			planet_building_refund_mult = 0.15
		}
		weight = {
			factor = 1
		}
	}
	
	tradition_swap = {
		name = tr_versatility_universal_compatibility
		inherit_effects = no
		inherit_icon = no
		inherit_name = no
		trigger = {
			is_machine_empire = yes
		}
		modifier = {
			country_synthetic_trust_cap_add = 50
		}
		weight = {
			factor = 1
		}
	}
	
	ai_weight = {
		factor = 1000
	}
}

Tradition Group Adoption Effects[編輯 | 編輯原始碼]

Tradition Group Adoption Effects are Traditions too, except they need no icons as well as they have different format of localisation keys.

  • tr_example_adopt:0 "Example Traditions"
  • tr_example_adopt_desc:0 "$tradition_example_desc$\n\n$tr_example_adopt_effect$\n\n$tr_example_finish_effect$"
  • tr_example_adopt_effect:0 "§E$TRADITIONS_ADOPT$:§!\nDescription of Adoption Effects of this Tradition Group."

The localisation key "tr_???_adopt_desc" is a tooltip to show the player what are the adoption effects and finisher effects while the player hover their mouse over the Tradition Group. It should look like this in game.

Let me show you an example.

Adoption Effect
Description of Adoption Effects of this Tradition Group.

Finisher Effect
Adopting all Example Traditions will do something. In addition, we will unlock 1 Ascension Perk Slot.

Adoption Effect Example[編輯 | 編輯原始碼]

This example is the Adoption Effect of the Diplomacy Tradition.

tr_diplomacy_adopt = {
	modifier = {
		diplomacy_upkeep_mult = -0.5
		pop_growth_from_immigration = 0.10
	}
	
	tradition_swap = {
		name = tr_adaptability_adopt
		inherit_effects = no
		inherit_icon = yes
		inherit_name = no
		trigger = {
			OR = {
				has_valid_civic = civic_fanatic_purifiers
				has_valid_civic = civic_inwards_perfection
				is_hive_empire = yes
				has_valid_civic = civic_barbaric_despoilers
			}
		}
		modifier = {
			pop_housing_usage_mult = -0.10
		}
		weight = {
			factor = 1
		}
	}
	
	tradition_swap = {
		name = tr_versatility_adopt
		inherit_effects = no
		inherit_icon = yes
		inherit_name = no
		trigger = {
			is_machine_empire = yes
		}
		modifier = {
			planet_pop_assemblers_upkeep_mult = -0.10
		}
		weight = {
			factor = 1
		}
	}
	
	ai_weight = {
		factor = 10
		modifier = {
			factor = 5
			has_federation = yes
		}
		...
	}
}

Tradition Group Finisher Effects[編輯 | 編輯原始碼]

Tradition Group Finisher Effects are, similarly, Traditions, except they furtherly need no ai_weight. In principle, a Finisher Effect must have a modifier of "ascension_perks_add = 1".

  • tr_example_finish:0 "Example Tradition Finished"
  • tr_example_finish_effect:0 "§E$TRADITIONS_FINISH$:§!\nAdopting all $tr_example_adopt$ will do something."
    • No need to describe about the Ascension Perk slot unlocked by this Finisher Effect, because the localisation key "TRADITIONS_FINISH_AP" is hard-coded to be appended to the finisher effect description.

Finisher Effect Example[編輯 | 編輯原始碼]

This example is the Finisher Effect of the Diplomacy Tradition.

tr_diplomacy_finish = {
	modifier = {
		ascension_perks_add = 1
		country_trust_cap_add = 50
		country_trust_growth = 0.33
	}
	
	tradition_swap = {
		name = tr_adaptability_finish
		inherit_effects = no
		inherit_icon = yes
		inherit_name = yes
		trigger = {
			OR = {
				has_valid_civic = civic_fanatic_purifiers
				has_valid_civic = civic_inwards_perfection
				is_hive_empire = yes
				has_valid_civic = civic_barbaric_despoilers
			}
		}
		modifier = {
			ascension_perks_add = 1
		}
		weight = {
			factor = 1
		}
	}
	
	tradition_swap = {
		name = tr_versatility_finish
		inherit_effects = no
		inherit_icon = yes
		inherit_name = yes
		trigger = {
			is_machine_empire = yes
		}
		modifier = {
			planet_building_refund_mult = 0.5
			ascension_perks_add = 1
		}
		weight = {
			factor = 1
		}
	}
}

Ascension Perks[編輯 | 編輯原始碼]

Ascension Perks are defined at "common/ascension_perks/xxx.txt".

Data Structure[編輯 | 編輯原始碼]

  • potential - A block of Conditions to determine should this AP appear in the AP selection menu. Also used to hide DLC perks. All APs should exclude itself with potential. (Country scope)
  • possible - A block of Conditions to determine is this AP available to an empire. (Country scope)
  • on_enabled - A block of Effects to be executed when the empire adopted this AP. (Country scope)
  • modifier - A block of Modifiers. Easy understanding.
  • ai_weight - The higher the weight is, the more likely the AI will pick this perk.

Localisation Keys[編輯 | 編輯原始碼]

  • ap_example:0 "Example"
  • ap_example_desc:0 "When I shine, the darkness fades."

Icon Defination[編輯 | 編輯原始碼]

  • Like Traditions, APs do also have a somewhat cumbering icon definition style. A new gfx definition is required.
  • "xxx.dds" file can be anywhere. Putting it into "gfx/interface/icons/ascension_perks/" is recommended.
spriteTypes = {
	spriteType = {
		name = "GFX_ap_example"
		textureFile = "gfx/interface/icons/ascension_perks/ap_example.dds"
	}
}

AP Example[編輯 | 編輯原始碼]

This example is the Ascension Perk "Xeno Compatibility".

ap_xeno_compatibility = {
	potential = {
		host_has_dlc = "Megacorp"
		NOT = {
			has_ascension_perk = ap_xeno_compatibility
		}
		is_regular_empire = yes
	}

	modifier = {
		planet_immigration_pull_mult = 0.33
	}

	possible = {
		custom_tooltip = {
			fail_text = "civic_tooltip_xenophile"
			is_xenophile = yes
		}
		custom_tooltip = {
			fail_text = "requires_xeno_species"
			any_owned_pop = {
				NOR = {
					is_same_species = root.owner
					has_trait = trait_mechanical
					has_trait = trait_machine_unit
					has_trait = trait_hive_mind
				}
			}
		}
		custom_tooltip = {
			fail_text = "requires_technology_gene_tailoring"
			has_technology = tech_gene_tailoring
		}
	}

	on_enabled = {
		custom_tooltip = "allow_crossbreeding"
	}

	ai_weight = {
		factor = 10
		modifier = {
			factor = 2
			has_ethic = ethic_xenophile
		}
		modifier = {
			factor = 3
			has_ethic = ethic_fanatic_xenophile
		}
	}
}

相關的動態修改語句[編輯 | 編輯原始碼]

  • has_ascension_perk = <key> - (Condition) Checks if this empire has this Ascension Perk.

User Interface[編輯 | 編輯原始碼]

The Tradition UI file is "interface/topbar_traditions_view.gui". It's shared with Relics and Artifact Actions. This file defined where should the Tradition Groups be and where should the Traditions be in their group. Arrows to indicate Tradition requirements are also defined here. Without modding this file, new Tradition Groups as well as new Traditions can't be made visible in the UI.

The Ascension Perk selection menu UI file is "ascension_perks_view.gui".

帝國 帝國思潮政府 • 國民理念 • 起源承諾議程傳統 • 飛升天賦法令政策遺珍科技自定義帝國
人口 崗位派系
領袖 領袖領袖特質
物種 物種物種特質
行星 行星行星特徵 • 軌道礦藏建築 • 區劃行星決議
星系 星系恆星基地巨型結構蟲洞 • 星門地圖
艦隊 艦隊艦船 • 部件
地面戰 陸軍轟炸姿態
外交 外交 • 聯邦 • 星海共同體評價修正宣戰理由 • 戰爭目標
事件 事件異常現象特殊項目考古遺址
遊玩 遊玩定義研究 • 經濟遊戲開局
動態修改 動態指令效果觸發條件作用域修正變量AI
媒體/本地化 Maya 導出器圖形肖像旗幟事件圖片界面圖標音樂本地化
Other 控制台命令存檔編輯Steam 創意工坊模組製作教程