Planet Generation modding (2024)

in:Potentially outdated, 2.7, Expand, Modding

Edit
  • Edit source
  • View history
  • Talk (0)

Version

Planet Generation modding (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.

Contents

  • 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[]

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[]

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 (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 (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 (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 (6)
blocker_swap_types = { _key_of_deposit_ ... }
all_blocker_swap_types = <yes/no>
use_weights_for_blocker_swap_types = <yes/no>
Planet Generation modding (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 (8)A block of Conditions to check can this blocker be cleared. (Planet scope)Planet Generation modding (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[]

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 blockersimportant = 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 = yespotential = {is_primary_star = noNOR = {is_planet_class = pc_ringworld_habitable_damagedis_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 = 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 Wildlife0

d_dangerous_wildlife_blocker = {time = 270is_for_colonizeable = 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 Research0

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

Planet modifiers[]

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 Generation modding (10)

Please help improve this article or section by expanding it with: Are planet modifiers spawned before or after planet deposits? Which can use the other to modify spawn chance/drop weight?.
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[]

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 = {0

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 moddingEffectsConditionsScopesModifiersVariablesAI
Media/localisationMaya exporterGraphicsPortraitsFlagsEvent picturesInterfaceIconsMusicLocalisation
OtherConsole commandsSave-game editingSteam WorkshopModding tutorial

Community content is available under CC-BY-SA unless otherwise noted.

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

Author: Jeremiah Abshire

Last Updated:

Views: 5536

Rating: 4.3 / 5 (74 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Jeremiah Abshire

Birthday: 1993-09-14

Address: Apt. 425 92748 Jannie Centers, Port Nikitaville, VT 82110

Phone: +8096210939894

Job: Lead Healthcare Manager

Hobby: Watching movies, Watching movies, Knapping, LARPing, Coffee roasting, Lacemaking, Gaming

Introduction: My name is Jeremiah Abshire, I am a outstanding, kind, clever, hilarious, curious, hilarious, outstanding person who loves writing and wants to share my knowledge and understanding with you.