Planet Generation modding

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

This page is about modding Deposits and Planet Modifiers.

Deposits[編輯 | 編輯原始碼]

Deposits are objects on Planets that can have its own resource production and upkeep and Modifiers to the planet.

There are two types of Deposits, one being the planetary features for the colonizable planets that can be inspected by the player, and another being the orbital deposits for the uncolonizable planets that usually can't be inspected by the player.

There are two types of planetary features, one being normally pure-benifitial and unremovable and another being normally pure-harmful and can be removed by spending resources, called blockers. Some blockers spawn with an additional planetary feature behind it, but the seemingly "blocked" planetary feature isn't actually added to the planet before the blocker to be cleared. Although vanilla unused, a blocker can also block a blocker behind it.

They are defined at "common/deposits/xxx.txt".

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

Property Planetary Features Planetary Blockers Orbital Deposits
is_for_colonizable = <yes/no> For habitable planets, is_for_colonizable = yes. Default is = no. For mining station or research station collection, is_for_colonizable = no.
station No.png Determines the type of orbital station required to mine this deposit. One of the following is allowed.
  • shipclass_mining_station
  • shipclass_research_station
icon = <deposit key> This deposit will use the icon of another deposit instead.

The default icon path is gfx/interface/icons/deposits/<deposit key>.dds.

Since orbital deposits can't be normally inspected, this property will normally not be useful.
use_for_min_max_adjustments = <yes/no> If yes, this deposit is used to refresh the maximum districts on planet view. Vanilla have this toggled yes for each deposit that increases maximum number of a certain type of district. No.png
category = <deposit category> For obvious reason the deposit category must NOT specify blocker = yes.

Vanilla use one of the following.

  • deposit_cat_food
  • deposit_cat_energy
  • deposit_cat_minerals
  • deposit_cat_rare
For obvious reason the deposit category must specify blocker = yes.

Vanilla use one of the folliwing.

  • deposit_cat_blockers
  • deposit_cat_rare_blocker
planet_modifier
triggered_planet_modifier
Blocks of Modifiers to be applied to the Planet. Modifiers that add maximum number of buildings / disctricts of a certain type go here. If this deposit is blocked behind a blocker, none of these effects apply. Modifiers that affect Trade value.png Trade Value go here. The Trade Value can be collected without building any stations on the Planet. Other Modifiers don't apply.
country_modifier A block of Modifiers to be applied to the Empire that owns this Planet. No.png
blocked_modifier Vanilla unused but mentioned it in the comments. Presumably Modifiers to be applied to the Planet for as long as this deposit remains blocked behind a blocker.
should_swap_deposit_on_terraforming = <yes/no>
terraforming_swap_types = { _key_of_deposit_ ...}
all_terraforming_swap_types = <yes/no>
use_weights_for_terraforming_swap_types = <yes/no>
Some vanilla planetary features will swap into another of exactly same effect after terraforming. This is implemented through these properties.

If this deposit should swap on terraforming and it no longer mets its potential after a terraforming, it will swap to a random one from the list that meets its potential.

If "all terraforming swap types" is allowed, then ALL non-blocker deposits that meet their potential on this planet can be chosen.

If "use weights for terraforming swap types", the swap is furtherly weighted by their drop_weight.

No.png
blocker_swap_types = { _key_of_deposit_ ... }
all_blocker_swap_types = <yes/no>
use_weights_for_blocker_swap_types = <yes/no>
No.png When this blocker is placed on a Planet, if it has any blocker swap type, a random deposit that meets its potential on this planet is chosen to be visibly "blocked" behind this blocker. Before this blocker to be cleared, the deposit isn't actually added to the planet and none of its effects will apply.

if "all blocker swap types" is allowed, then ALL non-blocker deposits that meet their potential on this planet can be chosen.

If "use weights for blocker swap types", the swap is furtherly weighted by their drop_weight.

resources An Economy Unit of this deposit to determine its resource production, upkeep and blocker removal cost.
Vanilla use planet_deposits for the economy category, although it's quite rare for a normal deposit to directly produce resources itself. Vanilla use deposit_blockers for the economy category. Vanilla use orbital_mining_deposits and orbital_research_deposits for the economy category.
can_be_cleared No.png A block of Conditions to check can this blocker be cleared. (Planet scope) No.png
on_cleared A block of Effects to be executed after this blocker is cleared. (Planet scope)
time = <int> Days it takes to clear this blocker.
prerequisites = { <tech key> ...} A list of Technologies to be researched before this blocker can be cleared.
potential A block of Conditions to check can this deposit be spawned on a Planet. This block is neglected if the deposit is added via script. (Planet scope)
drop_weight Determines how likely this deposit is spawned on a Planet. If drop weight is multiplied by 0 this deposit can't be spawned on this Planet. (Planet scope)

Deposit Categories[編輯 | 編輯原始碼]

Planetary features are grouped by Deposit Categories defined at "common/deposit_categories/xxx.txt". They are so simple that they have only two properties. This is used to diverse planetary features to make the planet have relatively less "extreme" maximum district distribution.0
deposit_cat_food = { }
deposit_cat_energy = {}
deposit_cat_minerals = {}
deposit_cat_blockers = { 
	blocker = yes # Counts as blockers
}
deposit_cat_rare = { 
	important = yes	# Shows up as rare deposits in planetview
}
deposit_cat_rare_blocker = { 
	blocker = yes # Counts as blockers
	important = yes	# Shows up as rare deposits in planetview
}

The Null Orbital Deposit[編輯 | 編輯原始碼]

There is a null orbital deposit present. It generates no resources and doesn't support any kind of orbital stations, functioanlly play as a placeholder for the uncolonizable planets devoid of deposits. An uncolonizable planet that doesn't meet the potential of the null deposit will always have an orbital deposit.0
d_null_deposit = {
	is_null = yes
	
	potential = {
		is_primary_star = no
		NOR = {			
			is_planet_class = pc_ringworld_habitable_damaged
			is_planet_class = pc_ringworld_tech_damaged
		}
	}
	
	drop_weight = {
		weight = 100
	}
}

Examples[編輯 | 編輯原始碼]

Planetary Feature: Hot Springs (+1 Max Generator Districts)0
d_hot_springs = {
	is_for_colonizeable = yes
	use_for_min_max_adjustments = yes

	category = deposit_cat_energy
	
	use_weights_for_terraforming_swap_types = yes
	should_swap_deposit_on_terraforming = yes
	terraforming_swap_types = {
		d_arid_highlands
		d_buzzing_plains # gaia
	}	
	
	planet_modifier = { 
		district_generator_max = 1
	}
	
	potential = {
		OR = {
			is_cold = yes
			is_wet = yes
			is_planet_class = pc_nuked
		}	
	}
	
	drop_weight = {
		weight = @high	
		modifier = {
			factor = @planet_type_bonus
			is_dry = yes
		}		
	}
}
Blocker: Dangerous Wildlife0
d_dangerous_wildlife_blocker = {
	time = 270

	is_for_colonizeable = yes
	category = deposit_cat_blockers

	resources = {
		category = deposit_blockers
		cost = {
			energy = 500
		}
	}

	potential = {
		planet_size >= 10
	}

	planet_modifier = {
		planet_max_districts_add = -2
	}

	on_cleared = {
		hidden_effect = {
			if = {
				limit = {
					exists = owner
					owner = {
						has_civic = civic_hive_devouring_swarm
					}
				}
				owner = { add_resource = { food = 200 } }
			}
		}
	}

	drop_weight = {
		weight = @blocker_low
		modifier = {
			factor = 0.5
			planet_size < 15
		}
		modifier = {
			factor = 0
			num_free_districts = {
				type = district_city
				value < 2
			}
		}
	}

	prerequisites = { "tech_dangerous_wildlife" }
}
Orbital Deposit: 1 Society Research0
d_society_1 = {
	resources = {
		category = orbital_research_deposits
		produces = {
			society_research = 1
		}
	}
	station = shipclass_research_station 
	is_for_colonizeable = no
	
	potential = {
		is_planet_class = pc_toxic
	}
	
	drop_weight = {
		weight = 0	
	}
}

Planet Modifiers[編輯 | 編輯原始碼]

Planet Modifiers are additional modifiers given to planets upon planet generation. They are linked to Static Modifiers but not equivalent to them. They are defined at "common/planet_modifiers/xxx.txt".

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

Property Description
modifier = <static modifier> Relative Static Modifier to be added to the planet.
spawn_chance
  • modifier
    • add = <int>
    • factor = <float>
    • Conditions (Planet Scope)
Modifies the weights of this Planet Modifier to spawn.

The Null Planet Modifier[編輯 | 編輯原始碼]

Similarly, there is a null planet modifier present that has no linked Static Modifier just serve as a placeholder.0
pm_null = {
	is_null = yes
	
	spawn_chance = {
		value = 275
		modifier = {
			factor = 3
			num_modifiers > 2
		}		
		modifier = {
			factor = 3
			num_modifiers > 1
		}
		modifier = {
			factor = 3
			num_modifiers > 0
		}
	}
}


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