Planet Generation modding - Stellaris Wiki (2024)

Version

Planet Generation modding - Stellaris Wiki (1)

Please help with verifying or updating older sections of this article. At least some were last verified for version 2.7.

This article is for the PC version of Stellaris only.

This page is about modding Deposits and Planet Modifiers.

  • 1 Deposits
    • 1.1 Data Structure
    • 1.2 Deposit Categories
    • 1.3 The Null Orbital Deposit
    • 1.4 Examples
  • 2 Planet modifiers
    • 2.1 The null planet modifier

Deposits[edit | edit source]

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-beneficial 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[edit | edit source]

PropertyPlanetary FeaturesPlanetary BlockersOrbital 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.
stationPlanet Generation modding - Stellaris Wiki (2)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.Planet Generation modding - Stellaris Wiki (3)
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 go here. The Trade Value can be collected without building any stations on the Planet. Other Modifiers don't apply.
country_modifierA block of Modifiers to be applied to the Empire that owns this Planet.Planet Generation modding - Stellaris Wiki (5)
blocked_modifierVanilla 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.

Planet Generation modding - Stellaris Wiki (6)
blocker_swap_types = { _key_of_deposit_ ... }
all_blocker_swap_types = <yes/no>
use_weights_for_blocker_swap_types = <yes/no>
Planet Generation modding - Stellaris Wiki (7)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.

resourcesAn 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_clearedPlanet Generation modding - Stellaris Wiki (8)A block of Conditions to check can this blocker be cleared. (Planet scope)Planet Generation modding - Stellaris Wiki (9)
on_clearedA 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.
potentialA 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_weightDetermines 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[edit | edit source]

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.

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 blockersimportant = yes# Shows up as rare deposits in planetview}

The Null Orbital Deposit[edit | edit source]

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.

d_null_deposit = {is_null = yespotential = {is_primary_star = noNOR = {is_planet_class = pc_ringworld_habitable_damagedis_planet_class = pc_ringworld_tech_damaged}}drop_weight = {weight = 100}}

Examples[edit | edit source]

Planetary Feature: Hot Springs (+1 Max Generator Districts)

d_hot_springs = {is_for_colonizable = yesuse_for_min_max_adjustments = yescategory = deposit_cat_energyuse_weights_for_terraforming_swap_types = yesshould_swap_deposit_on_terraforming = yesterraforming_swap_types = {d_arid_highlandsd_buzzing_plains # gaia}planet_modifier = { district_generator_max = 1}potential = {OR = {is_cold = yesis_wet = yesis_planet_class = pc_nuked}}drop_weight = {weight = @highmodifier = {factor = @planet_type_bonusis_dry = yes}}}

Blocker: Dangerous Wildlife

d_dangerous_wildlife_blocker = {time = 270is_for_colonizable = yescategory = deposit_cat_blockersresources = {category = deposit_blockerscost = {energy = 500}}potential = {planet_size >= 10}planet_modifier = {planet_max_districts_add = -2}on_cleared = {hidden_effect = {if = {limit = {exists = ownerowner = {has_civic = civic_hive_devouring_swarm}}owner = { add_resource = { food = 200 } }}}}drop_weight = {weight = @blocker_lowmodifier = {factor = 0.5planet_size < 15}modifier = {factor = 0num_free_districts = {type = district_cityvalue < 2}}}prerequisites = { "tech_dangerous_wildlife" }}

Orbital Deposit: 1 Society Research

d_society_1 = {resources = {category = orbital_research_depositsproduces = {society_research = 1}}station = shipclass_research_station is_for_colonizable = nopotential = {is_planet_class = pc_toxic}drop_weight = {weight = 0}}

Planet modifiers[edit | edit source]

Planet modifiers are additional modifiers given to planet objects upon planet generation. They are linked to static modifiers but not equivalent to them. They are defined by files in the Stellaris/common/planet_modifiers/ folder. Static modifiers added directly to a planet by an effect or anomaly don't need to have a planet modifier defined here.

Planet modifier data structure
PropertyDescription
  • spawn_chance = {
    • base = <int>
    • modifier = {
      • add = <int>
      • <conditions>
    • }
    • modifier = {
      • factor = <float>
      • <conditions>
    • }
  • }
  • Modifies the weight of this planet modifier to spawn relative to other randomized planet modifiers.
  • All vanilla planet modifiers (except the null modifier, see below) leave the base spawn chance at the default value of 0.
modifier = "<static modifier>"Key of the static modifier to be added to the planet.

The null planet modifier[edit | edit source]

There is a null planet modifier defined in the Stellaris/common/planet_modifiers/00_planet_modifiers.txt file that has no linked static modifier. It's purpose is to control how common other modifiers are; it has a base weight of 275 (most vanilla planet modifiers have a weight of 10 before spawn chance weight modifiers), which gets multiplied by 3 for each modifier the planet already has in order to make planets with multiple modifiers increasingly rare.

pm_null = {

is_null = yes
spawn_chance = {
base = 275
modifier = {
factor = 3
num_modifiers > 2
}
modifier = {
factor = 3
num_modifiers > 1
}
modifier = {
factor = 3
num_modifiers > 0
}
}

0}

Modding

EmpireEmpireEthicsGovernments • Civics • OriginsMandatesAgendasTraditions • Ascension perksEdictsPoliciesRelicsTechnologiesCustom empires
PopsJobsFactions
LeadersLeadersLeader traits
SpeciesSpeciesSpecies traits
PlanetsPlanetsPlanetary feature • Orbital depositBuildings • DistrictsPlanetary decisions
SystemsSystemsStarbasesMegastructuresBypassesMap
FleetsFleetsShips • Components
Land warfareArmiesBombardment stance
DiplomacyDiplomacy • Federations • Galactic communityOpinion modifiersCasus Belli • War goals
EventsEventsAnomaliesSpecial projectsArchaeological sites
GameplayGameplayDefinesResources • EconomyGame start
Dynamic moddingDynamic moddingEffectsConditionsScopesModifiersVariablesAIOn actions
Media/localisationMaya exporterPortraitsFlagsEvent picturesInterfaceIconsMusicLocalisation
OtherConsole commandsSave-game editingSteam WorkshopModding tutorial

Retrieved from ""

Planet Generation modding - Stellaris Wiki (2024)
Top Articles
Latest Posts
Article information

Author: Kelle Weber

Last Updated:

Views: 6248

Rating: 4.2 / 5 (53 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Kelle Weber

Birthday: 2000-08-05

Address: 6796 Juan Square, Markfort, MN 58988

Phone: +8215934114615

Job: Hospitality Director

Hobby: tabletop games, Foreign language learning, Leather crafting, Horseback riding, Swimming, Knapping, Handball

Introduction: My name is Kelle Weber, I am a magnificent, enchanting, fair, joyous, light, determined, joyous person who loves writing and wants to share my knowledge and understanding with you.