コンテンツにスキップ
Stellaris v4.0 対応 翻訳

区域の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)の内容を翻訳した非公式ファン翻訳です。