Pop Job modding

本页面部分全部内容上次核对于2.6版本
自由之民讨论 | 贡献2022年3月7日 (一) 21:59的版本 (文本替换 - 替换“Category:Modding]]”为“Category:模组制作]]”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)


This page is about how to modify existing and how to create new Jobs.

Social Strata[编辑 | 编辑源代码]

A Social Stratum is the position of a group of Pops in a society. They are defined at "common/pop_categories/xxx.txt".

In the planet population view, Jobs are grouped by Strata and Strata are sorted based on the order they are defined in files.

Data Structure[编辑 | 编辑源代码]

Property Description
rank = <int> Marks the social rank of this Stratum.
clothes_texture_index = <int> The clothes index the portrait of this Pop will use. Only relevant to species portraits with clothes.
change_job_threshold = <float> If a Pop of this Stratum is employed, a new Job must have at least this many times the weigth of the former Job to make this Pop switch to the new Job.
keep_from_former_job = <yes/no>
demotion_time = <int>
Determines should a Pop of a Job of this Stratum will still be considered of this Stratum if unemployed.

If so, how many days until the Pop will demote its Stratum after unemployed.

pop_modifier A block of Modifiers to be applied to a Pop of this Stratum. Modifiers that affect base 舒适度 Amenities 舒适度Amenities and 住房 Housing 住房Housing usage go here.
resources An Economy Units to determine the resource upkeep and production of a Pop of this Stratum. Upkeep costs like 食物 Food 食物Food and 消费品 Consumer Goods 消费品Consumer Goods and resource productions by some Lithoid traits go here.
triggered_planet_modifier A block of Modifiers with a potential to be applied to the Planet. Modifiers that add Trade value.png Trade Value based on the living standard go here.

Pop Strata do not support the unconditional planet_modifier.

should_apply_unemployment_penalties
unemployment_penalties
The former block of Conditions (Pop scope) to determine should the later block of Modifiers be applied to the Pops of this Stratum after they are unemployed.

The condition also determines should a Pop of this Stratum trigger the unemployment empire alert. Vanilla usually disable unemployment alert for Pops of high living standard, being able to produce resources if unemployed.

unemployment_resources An Economy Units to determine the resource upkeep and production of this Pop while it is unemployed.
assign_to_pop A block of Conditions to determine should a Pop be assigned to this Stratum. This is called when a Pop is created, moved to another planet, or got a new owner.
allow_resettlement
resettlement_cost = { <resource> = <int> }
The former block of Conditions determines can a Pop of this Stratum be resettled, and if so, the later block determines the cost.
weight Determines the weight of this Stratum.

Questions & Answers[编辑 | 编辑源代码]

Why is a Specialist Pop never attracted to a Worker job?0

The 专家 Specialist 专家Specialist Stratum has higher rank than the 劳工 Worker 劳工Worker Stratum, making it unwilling to take any Worker jobs.

The 复合子个体 Complex Drone 复合子个体Complex Drone Stratum has the same rank as the 低级子个体 Menial Drone 低级子个体Menial Drone Stratum, making them willing to take Menial Drone jobs if the mastermind so desire.
How does demotion work?0

If a Stratum has keep_from_former_job = yes, a Pop of this Stratum will still be of this Stratum after unemployment, until a number of days equal to the demotion_time have been passed.

For example, the 专家 Specialist 专家Specialist Stratum is ranked 2 with a demotion time of 1800 days, making an unemployed Pop that is formerly a Specialist job to still consider itself a Specialist and will only accept a Specialist or Ruler job, until 1800 days have been passed and it will finally stop hiding itself from reality and demote itself to 劳工 Worker 劳工Worker Stratum, or "reset" its Stratum by technical.

The 复合子个体 Complex Drone 复合子个体Complex Drone Stratum does NOT have keep_from_former_job = yes or demotion_time, making Pops of this Stratum to immediately reset the Stratum after unemployment.
How does slavery work?0

A Slave might take jobs from 专家 Specialist 专家Specialist or 劳工 Worker 劳工Worker Stratum, but a Slave will never receive the same amount of 消费品 Consumer Goods 消费品Consumer Goods upkeep of a Specialist or a Worker. Actually, 奴隶 Slave 奴隶Slave is a special Stratum with no Jobs specifing itself of it, while it has a higher weight than any of the common Strata. It also has a custom assign_to_pop.

The actual Stratum of a Pop is selected from all Strata with a custom assign_to_pop plus the current Stratum of the Job the Pop is working in. For example, a Pop with Indentured Servitude slavery type working as an 工匠 Artisan 工匠Artisan will choose its Stratum from 专家 Specialist 专家Specialist, 劳工 Worker 劳工Worker and 奴隶 Slave 奴隶Slave, with Slave being with the highest weight, making this Pop a Slave beyond all. (Worker do also have a custom assign_to_pop.)

During the days an unemployed 专家 Specialist 专家Specialist Pop wait for a Specialist or Ruler job until its demotion, it still "sees" the 劳工 Worker 劳工Worker Stratum and view it as a lower weighted Stratum, making it unwilling to reconsider itself a Worker. If you enslave it now, it will "see" the 奴隶 Slave 奴隶Slave Stratum being with higher weight than the Specialist Stratum, and it will now be forced to consider itself a Slave.
What if some parameters were changed?0

If the 专家 Specialist 专家Specialist Stratum and the 劳工 Worker 劳工Worker Stratum had the same rank, an unemployed Specialist Pop will happily take a Worker job after unemployment and will instantly become a Worker, and if there was no Worker jobs available, the Pop will become an unemployed Specialist and needs time to demote until a Worker job is available.

If the Specialist Stratum had lower weight than the Worker Stratum, a Pop in Specialist job will still be a Worker, consuming the same amount of 消费品 Consumer Goods 消费品Consumer Goods as a Worker, and it will be of needing no time at all to demote.

Jobs[编辑 | 编辑源代码]

Jobs are defined at "common/pop_jobs/xxx.txt".

Data Structure[编辑 | 编辑源代码]

Property Description
is_capped_by_modifier = <yes/no> Default yes. If no, this job is always considered available if other conditions are met. If there is a job uncapped by modifiers available that's open to all pops, no pops will become unemployed.
category = <pop category key> The Stratum this Job is binded to. A pop will be considered of this Stratum for as long as they are employed under this job and there isn't any Strata with a custom assign_to_pop and with higher weight than this one.
condition_string = <localisation key> A localisation key to briefingly describe what kind of Pop can be employed on this Job.
building_icon = <building key> Determines the building icon of this Job to be shown in the planet population view behind the Pop portrait. For example, the 研究人员 Researcher 研究人员Researcher job will use the science lab for a building icon. Nonexistent buildings can be specified and the texture file "gfx/interface/icons/buildings/<building key>.dds" will be used.
clothes_texture_index = <int> Optional. Determines the clothes index of a Pop working on this Job, overwritting the setting of the Stratum.
icon = <pop job key> Optional. Makes this Job to use the icon of another Job. For example, the 科研主管 Science Director 科研主管Science Director uses the same icon as 研究人员 Researcher 研究人员Researcher.
possible_pre_triggers A block of Pseudo-Conditions to determine can a Pop work in this Job. Only the following yes-or-no questions are allowed. 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.
  • has_owner
  • is_enslaved
  • is_being_purged
  • is_being_assimilated
  • has_planet
  • is_sapient
possible A block of Conditions to determine can a Pop work in this Job. (Pop scope)
resources An Economy Units to determine the resource upkeep and production of this Job. (Planet scope, root = pop scope)
planet_modifier
triggered_planet_modifier
Block of Modifiers to be applied to the Planet. Modifiers that add 舒适度 Amenities 舒适度Amenities, Trade value.png Trade Value or decrease 犯罪与异常 犯罪与异常 go here.
country_modifier
triggered_country_modifier
Block of Modifiers to be applied to the Empire. Modifiers that add 海军容量 Naval Capacity 海军容量Naval Capacity or Mod country admin cap add.png Administrative Cap go here.
pop_modifier
triggered_pop_modifier
A block of Modifiers to be applied to the Pop. Modifiers that add defense armies go here. See Army modding for details of Pop-spawned defense armies.
weight A Pop will attempt to take Jobs with higher weight for it. (Pop scope)

Questions & Answers[编辑 | 编辑源代码]

How to have a Job to produce something more or less without overwritting it?0
  • If you are asking about how to make a Job to produce more resources of a certain type, head to the resource block and find its economy category, then head to the "common/economy_categories" to find what kind of modifiers are generated for this economy category.
    • For example, 研究人员 Researcher 研究人员Researcher has its own economy category that "produces_mult" modifiers would be generated, making modifiers like job_researchers_physics_research_produces_mult usable. However, since "produces_add" modifiers won't be generated, it's impossible to have researchers produce resources they originally can't, unless you overwrite the economy categories and force it to generate your required kind of modifiers.
    • Also, 矿工 Miner 矿工Miner has its own economy category that both "produces_mult" and "produces_add" modifiers would be generated, making job_miners_minerals_produces_add usable. You can also use the modifier job_miners_minor_artifacts_produces_add = 1 to make Miners produce 稀有文物 Minor Artifacts 稀有文物Minor Artifacts +1, just do what you want.
    • If the job in question does not have its own economy category, for example, the 职员 Clerk 职员Clerk, then it's impossible to make them produce more resources by modifiers without affecting other jobs at all.
  • If you are asking about how to make a Job to produce more modifiers, like 舒适度 Amenities 舒适度Amenities, 海军容量 Naval Capacity 海军容量Naval Capacity, 犯罪与异常 犯罪与异常 Reduction, Trade value.png Trade Value, or Mod country admin cap add.png Administrative Cap, then you have to overwrite the Jobs and use triggered_(country/planet)_modifiers to implement this. There are no modifiers to modify modifiers produced by Jobs.
    • However, most of the modifiers produced by Jobs are _add. You can use _mult modifiers to multiply the overall Empire stat or Planet stat, effectively making relevant Jobs more effective.
    • Despite the trait Leader trait bureaucrat.png Bureaucrat having a modifier that reads planet_bureaucrats_produces_mult, don't be confused, because this modifier has no effect and all it does is to confuse you.

Relevant Modifiers[编辑 | 编辑源代码]

All jobs will generate the following modifiers for use.

  • job_<key>_add = <int> - This modifier adds that many jobs to the planet.
  • job_<key>_per_pop = <float> - This modifier adds X jobs to the planet, where X is the number of Pops multiplied by the value here.
  • job_<key>_per_crime = <float> - This modifier adds X jobs to the planet, where X is the planet crime multiplied by the value here.
帝国 帝国思潮政府 • 国民理念 • 起源承诺议程传统 • 飞升天赋法令政策遗珍科技自定义帝国
人口 岗位派系
领袖 领袖领袖特质
物种 物种物种特质
行星 行星行星特征 • 轨道矿藏建筑 • 区划行星决议
星系 星系恒星基地巨型结构虫洞 • 星门地图
舰队 舰队舰船 • 部件
地面战 陆军轰炸姿态
外交 外交 • 联邦 • 星海共同体评价修正宣战理由 • 战争目标
事件 事件异常现象特殊项目考古遗址
游玩 游玩定义研究 • 经济游戏开局
动态修改 动态指令效果触发条件作用域修正变量AI
媒体/本地化 Maya 导出器图形肖像旗帜事件图片界面图标音乐本地化
Other 控制台命令存档编辑Steam 创意工坊模组制作教程