区域のMOD制作¶
対応範囲
本ページはPhoenix 4.0アップデートで追加されたゾーン(区域特化)とゾーンスロットを扱います。3.x以前には適用されません。4.x系列の更新により仕様が変わる可能性があります。
ゲーム上では、惑星の主要区域は2つ、副区域は1つの特化(ゾーン)を持てます。MOD制作上は、区域がゾーンスロットを持ち、各スロットへ1つのゾーンを建設する仕組みです。
ゾーンスロット¶
区域のコードはゾーンスロットを参照します。ゾーンスロットは、その区域にどの区域特化を建設できるかを指定します。
たとえば基本の都市区域(district_city)では、slot_city_governmentスロットがzone_defaultを許可します。このゾーンは建造物スロットを6つ提供し、複数種類の建造物を建設可能にします。
必須条件
すべてのゾーンスロットは、少なくとも1つのゾーン(特化)を指定する必要があります。
- ゾーンスロットのローカライズは惑星UIに表示されないため、説明文は省略できます。
included_zone_setsでゾーンセットを指定すれば、そのセットに属するすべてのゾーンを許可できます。
次のslot_nexusは、nexusセットに属するすべてのゾーンを許可します。
slot_nexus = {
included_zone_sets = {
nexus
}
unlock = { # planet scope
uses_district_set = machine_world
}
}
データ構造¶
| プロパティ | 説明 | 使用例 |
|---|---|---|
start = <zone_identifier> |
主に惑星の主要区域で、スロットが最初から持つゾーンを指定します。都市区域に6スロットの政府ゾーンを初期配置する用途などに使います。任意。 | start = zone_default |
include = { zone_identifier } |
このスロットに建設できるゾーンのリスト。必須。 | include = { zone_unity } |
exclude = { zone_identifier } |
このスロットに建設できないゾーンのリスト。任意。 | exclude = { zone_minerals } |
included_zone_sets = { zone_set_identifier } |
ゾーンのzone_setsを参照し、許可するセットをまとめて指定します。セット名は任意に作成でき、バニラのものと独自のものを併用できます。任意。 |
included_zone_sets = { energy } |
excluded_zone_sets = { zone_set_identifier } |
このスロットで許可しないゾーンセットを指定します。任意。 | excluded_zone_sets = { minerals } |
unlock = { <conditions> } |
プレイヤーがスロットをクリックしてゾーンを追加できる条件。惑星スコープ。 | unlock = { always = yes } |
potential = { <conditions> } |
ゾーンスロット自体を表示する条件。惑星スコープ。 | potential = { always = yes } |
独自のゾーンセット名にはzone_set_接頭辞を付けることを推奨します。energyのような一般語だけを使うと、MOD内で検索・変更するときに識別しにくくなります。
ゾーン(区域特化)¶
ゾーンはゲーム内で「区域特化」として表示されます。ゾーンによって区域の生産内容を柔軟に変えられます。以前の区域は基本的に1種類の資源を生産し、場合によって副次資源を伴う仕組みでした。Phoenix 4.0以降は、区域の生産を主としてゾーンが決めます。ゾーンは特定のカテゴリやテーマの職業を追加し、そのゾーン内の建造物がさらに生産を強化します。
ゾーンを変更または複数作成すれば、区域が提供する職業を自由に設計できます。区域自体も、3.xと同様に資源や職業を直接提供できます。
ゾーンの主な性質は次のとおりです。
- 独自の
resourcesブロックを持ちます。 - 建造物スロットを提供します(バニラでは最大3)。
- 建設された区域数に乗算される補正を適用できます。
- 惑星補正と帝国補正を適用できます。
区域単位の惑星補正¶
district_planet_modifierは、そのゾーンがある区域の数だけ乗算して適用されます。惑星へ1回だけ適用されるplanet_modifierとは異なります。
zone_urbanの次の例では、都市区域を1つ建設するごとに一定量の住居が追加されます。
triggered_district_planet_modifier = {
planet_housing_add = @zone_urban_housing_positive
}
データ構造¶
| プロパティ | 説明 | 使用例 |
|---|---|---|
icon |
ゾーン選択時と建設後に惑星UIへ表示するSpriteType。必須。 |
icon = GFX_diplomatic_weight_large |
base_buildtime = <int> |
ゾーンの建設時間。必須。 | base_buildtime = @zone_buildtime |
planet_limit = <int> |
惑星上に建設できる数。任意。 | planet_limit = 2 |
max_buildings = <int> |
ゾーンが提供する建造物スロット数。主要区域では通常6、副区域では通常3。必須。 | max_buildings = 6 |
empire_limit = <int> |
帝国内に建設できる数。任意。 | empire_limit = 12 |
potential = { <conditions> } |
惑星UIで建設候補として表示する条件。省略時は常に真。任意。 | potential = { always = yes } |
unlock = { <conditions> } |
プレイヤーが建設できる条件。必須。 | unlock = { exists = owner owner = { is_individual_machine = yes } } |
zone_sets = { <zone_set_identifier> } |
このゾーンが属するゾーンセット。スロット側のincluded_zone_setsとexcluded_zone_setsから参照します。必須。 |
zone_sets = { urban habitat_urban resort } |
include = { <building_identifier> } |
ゾーン内に建設できる建造物。任意。 | include = { building_military_academy } |
exclude = { <building_identifier> } |
ゾーン内に建設できない建造物。任意。 | exclude = { building_autochthon_monument } |
included_building_sets = { <building_set_identifier> } |
建設を許可する建造物セット。任意。 | included_building_sets = { urban origin } |
excluded_building_sets = { <building_set_identifier> } |
建設を許可しない建造物セット。任意。 | excluded_building_sets = { generator mining farming } |
resources = { <economy_unit> } |
ゾーンのカテゴリ、建設費、維持費、生産を定める経済単位。任意。 | resources = { category = planet_zones cost = { minerals = @zone_cost } } |
swap_type = <district_identifier> |
ゾーン建設時に基礎区域を変更する先の区域ID。任意。 | swap_type = district_arcology_mixed_industry |
swap_type_weight = <int> |
スワップ先の重み。原文では詳細未確定。任意。 | — |
country_modifier = { <modifiers> } |
帝国へ適用する補正。ゾーンごとに1つ。任意。 | — |
triggered_country_modifier = { <modifiers> } |
potentialが真の場合のみ帝国へ適用する補正。複数指定可。任意。 |
— |
district_country_modifier = { <modifiers> } |
ゾーンを持つ区域数だけ乗算して帝国へ適用する補正。任意。 | — |
triggered_district_country_modifier = { ... } |
条件付きの区域単位帝国補正。区域数だけ乗算され、複数指定できます。任意。 | — |
district_planet_modifier = { ... } |
ゾーンを持つ区域数だけ乗算して惑星へ適用する補正。ゾーンごとに1つ。任意。 | — |
triggered_district_planet_modifier = { ... } |
条件付きの区域単位惑星補正。区域数だけ乗算され、複数指定できます。任意。 | triggered_district_planet_modifier = { planet_housing_add = @zone_urban_housing_positive } |
planet_modifier = { ... } |
惑星へ1回適用する補正。ゾーンごとに1つ。任意。 | — |
triggered_planet_modifier = { ... } |
条件付きの惑星補正。ゾーンごとに1つ。任意。 | — |
triggered_planet_pop_group_modifier_for_all = { ... } |
全POPグループ向けの条件付き補正。common/buildings/00_example.txtを参照。任意。 |
— |
triggered_planet_pop_group_modifier_for_species = { ... } |
種族別POPグループ向けの条件付き補正。common/buildings/00_example.txtを参照。任意。 |
— |
triggered_desc = { trigger = <conditions> text = "<localisation_key>" } |
ゾーンの追加ツールチップ。複数指定可。triggerは惑星スコープの表示条件(省略時は真)、textはローカライズキーです。任意。 |
— |
ai_priority = <value> |
値が高いほど、AIと惑星自動化がこのゾーンを使って建造物を建設しようとします。任意。 | — |
独自の建造物セットIDにはbuilding_set_接頭辞を付けることを推奨します。検索と整理が容易になります。
ゾーンによる区域の置換¶
ゾーンはswap_typeキーで区域タイプを変更できます。次のzone_factory_nexusを建設すると、区域がdistrict_nexus_factoryへ変わります。また、このゾーンはnexusセットに属するため、nexusセットを許可したすべてのゾーンスロットに建設できます。
zone_factory_nexus = {
inline_script = {
script = zones/shared_industrial_factory_zone
AMOUNT = @doubled_scaling_district_1_job
}
swap_type = district_nexus_factory
swap_type_weight = 5
zone_sets = { nexus }
inline_script = {
script = zones/shared_arcology_zone_modifiers
}
}
置換先のdistrict_nexus_factoryでは、potential = { always = no }にします。これにより、意図しない状況で置換先区域が惑星UIへ直接表示されることを防げます。
条件付きゾーン名¶
区域名のすぐ下には、惑星UI上のフレーバーテキストを表示できます。区域にtriggered_name = { ... }ブロックを定義します。
条件付き名称は上から順に解決され、最初に条件を満たしたものが表示されます。都市区域の例は次のとおりです。
triggered_name = {
trigger = {
num_zones = {
type = zone_research_unity
value > 0
}
num_zones = {
type = zone_industrial
value > 0
}
exists = owner
owner = {
num_owned_planets = 1
}
}
text = city_space_age_industry_1
}
triggered_name = {
text = district_city
}
上の例では、特定のゾーンと産業ゾーンが存在し、かつ所有惑星が1つなら宇宙時代産業用のテキストへ変更します。最初のブロックが成立しなければ、既定のdistrict_cityローカライズが表示されます。
出典: Stellaris Wiki — District modding(原文更新日: 2025年7月12日、版ID 107882)
翻訳日: 2026年8月31日 / 対応バージョン: 4.0
本ページは原文Wiki(CC BY-SA 3.0)の内容を翻訳した非公式ファン翻訳です。