• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.
Hi everyone!

Way back in Dev Diary 152, we discussed some planetary changes that we experimented with during summer 2019. At the time, we decided that while we learned a lot from the experiment, they required significant additional refinement before being something we wanted to incorporate into Stellaris.

Summer 2020 gave us the additional time we needed to revive these (and some other) experiments. Our primary objectives were to reduce the mid to late game micromanagement burden and provide quality of life improvements, including generally making the prebuilding of planets more viable, making planetary automation reliable enough to be trusted in the mid to late game, and making dealing with unemployment and pops easier.

We’ll be talking about these subjects in multiple dev diaries over the next couple of months.

Industrial Districts

Planet View Showing Industrial Districts

Azure Chalice is… er, was... a lovely place.

The planet view has shifted things around a bit and now supports the display of up to six district types. Most planets will have five district types available. This extra real estate could also be of special interest to modders.

The new brownish-orange district next to the City District is the revived Industrial District. Industrial Districts are treated as urban districts (and as such are not limited by planetary features), but rather than the Laborers that split their output from the original experiment, we’ve decided to have the districts provide regular empires one Artisan and one Metallurgist job. Gestalts have either two Foundry Drones or Fabricators as appropriate.

Industrial District tooltip (regular empire)

Work, work, work.

Factories and Foundries will still exist but are now planet unique, with the first tier building adding 2 jobs to the planet just like the old versions. The upgraded versions, however, will now add either 1 or 2 jobs of the appropriate type to each Industrial District on the planet.

Ecumenopoli will retain their specialized districts, but can be boosted by the Foundry or Factory buildings. The number of jobs per district on ecumenopoli have been adjusted somewhat as part of an overall economic balance pass. Since Industrial Districts are considered urban, a planet with a mix of City and Industrial Districts can be paved over and turned into an Ecumenopolis using the Arcology Project decision.

Since districts are now much more critical to the development of your civilization, the average size of homeworlds has been increased by 2, and as an additional side effect, the Mastery of Nature Ascension Perk may also become a bit more desirable.

Building Slots

I’m sure you’ve already noticed from the above screenshot, Building Slots no longer list population counts. Instead of relying on population, they're opened up by increasing the infrastructure of the planet. This is generally done by building City Districts (or their equivalent) or by upgrading the colony's Capital building. As a pleasant side effect of this, your buildings will no longer get ruined when a pop gets resettled, ritually killed, or eaten by mutants.
City District tooltip
Planetary Administration tooltip

Build up that infrastructure.

Two new technologies that unlock additional Building Slots have also been added, Ceramo-Metal Infrastructure and Durasteel Infrastructure. They represent the civilian adoption of military technology, and as such require some government techs and the associated armor technologies. The Adaptability tradition tree, for those that have it, still has a tech that grants a Building Slot as well.

As specialized and advanced worlds, Ecumenopoli, Ring Worlds, Hive Worlds, and Machine Worlds start with all of their building slots unlocked.

Habitats are intended to feel a bit cramped, so while Habitation Modules do not open up Building Slots, the Voidborne Ascension Perk will continue to grant two Building Slots to those that choose to embrace living in space.

The MegaCorps out there may ask “but what about our Branch Offices?” - we’ve got you covered.

Locked Branch Office building slot tooltip

Insider Trading. Institutionalized corruption exploited by the upper classes, or just greasing the wheels of trade?

Branch Offices will tie their slots to the level of the colony’s capital building. For example, a Planetary Administration building will grant one Branch Office Building Slot, a Planetary Capital will grant two, and a System Capital-Complex would grant three. If the target empire has the Insider Trading tradition, you’ll have one extra Branch Office Building Slot. (This may grant you a Branch Office building even on newly colonized worlds, if your business plan expects it to be profitable.)

But Why?

By decoupling the building unlocks from population growth, it makes it much easier to “prebuild” a planet to varying degrees. It removes some of the tedium of waiting for that last pop to finish growing before a slot unlocks, as well as the negative experience that occurred when a critical pop moved or died right at the wrong time. This change went through many iterations - in one of them the rural and industrial districts added "fractional" slots, in another the capital buildings gave more slots at each upgrade. The combination of having both City Districts and the Capital Building contributing to the slots, along with the additional techs, finally felt right. It's nice when even a newly founded Colony possesses at least one open building slot since it lets you immediately begin construction of a Spawning Pool or other high value building right away.

Moving the essential secondary resources of Consumer Goods and Alloys to districts frees up the building slots a little bit and creates a greater differentiation between heavily urbanized or industrial planets and resource generating colonies. Qualitatively we also felt that it "feels nice" to be getting more of your physical resources from the district level, leaving the Building Slots for more unique and specialized needs.

Both of these changes also happen to make some planetary automation decisions a little easier - your Tech Worlds should clearly build a mix of City and Industrial districts, for instance, to make room for Research Labs as well as to provide the Consumer Goods needed to pay for them. We do recognize that it may be difficult - or even impossible - to unlock all Building Slots on a planet that has not been urbanized, but those resource generating planets often do not have quite as strong a need for a large number of buildings.

Ideally in the mid to late game you could colonize a planet, set the colony designation you want for the planet, turn on automation, and reasonably expect the planet to be in decent shape - and doing what you told it to - the next time you look at it. (In the early game it's certainly possible, but your empire's economy may not be stable enough to support dedicated worlds and your colonies may be better off with direct caretaking.)

We have a few other experiments that are still ongoing that affect the relationship between urbanized vs. less developed planets that are not entirely conclusive yet. If they prove out we'll discuss them later on in this series of diaries. Our current plan for next week's diary is to talk more about the automated colony management overhaul as well as the automatic and manual resettlement of pops.

As a reminder, we have an ongoing feedback thread related to AI improvements we have in beta on the stellaris_test branch. We'd love to get more people on it and telling us what they think about them. (Please note that 2.8.1 is an optional beta patch. You have to manually opt in to access it. Go to your Steam library, right click on Stellaris -> Properties -> betas tab -> select "stellaris_test" branch.)

Thanks!
 
One thing for the devs who still lurk in this thread after 30 pages.

When you change all these buildings to provide jobs to districts, can you please please pretty please make that a modifier?

I know the quick and dirty way to implement the new system is this:
Code:
district_industrial = {
.... %blah blah blah

triggered_planet_modifier = {
        potential = {
            has_building = building_foundry_2
        }
        modifier = {
            job_foundry_add = 1
        }
    }
    
    ... %more stuff
}

However, for the sake of modders everywhere, can you make something like this instead:
Code:
building_foundry_2 = {
... %some stuff

triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = { is_regular_empire = yes }
        }
        modifier = {
            planet_districts_industrial_jobs_foundry_add = 1
        }
    }
... %rest of the stuff   
}
There are already modifiers that work this way, but what i am suggesting is a modifier class that is planet_districts_x_jobs_y_add, where X is a district and Y is a job type.
That way any mod that uses this system will not be automatically conflicting with all other mods. This way, any new building effects you want to make can be dropped into the building definition, and you won't have bugs where someone forgot to delete a line in the districts files when changing a building.
 
  • 12
  • 1Like
Reactions:
Where is the code for district conversion ratio? I'm looking at Arcology Project's decision code and can't see it.
Code:
effect = {
    # Make city-planet
    custom_tooltip = decision_arcology_project_effects
    hidden_effect = {
        clear_deposits = yes
        change_pc = pc_city
        set_planet_entity = {
            entity = "city_planet_entity"
            graphical_culture = owner
        }
        owner = {
            country_event = { id = distar.201 } # port for living planet distar.197, triggers in event
        }
        planet_event = { id = mega.200 }
        if = {
            limit = {
                OR = {
                    is_active_resolution = "resolution_ecology_environmental_control_board"
                    is_active_resolution = "resolution_ecology_paradise_initiative"
                }
            }
            owner = {
                set_timed_country_flag = { flag = resolution_breached_terraformed days = 3600 }
            }
        }
    }
}
 
Last edited:
Where is the code for district conversion ratio? I'm looking at Arcology Project's decision code and can't see it.
Code:
effect = {
    # Make city-planet
    custom_tooltip = decision_arcology_project_effects
    hidden_effect = {
        clear_deposits = yes
        change_pc = pc_city
        set_planet_entity = {
            entity = "city_planet_entity"
            graphical_culture = owner
        }
        owner = {
            country_event = { id = distar.201 } # port for living planet distar.197, triggers in event
        }
        planet_event = { id = mega.200 }
        if = {
            limit = {
                OR = {
                    is_active_resolution = "resolution_ecology_environmental_control_board"
                    is_active_resolution = "resolution_ecology_paradise_initiative"
                }
            }
            owner = {
                set_timed_country_flag = { flag = resolution_breached_terraformed days = 3600 }
            }
        }
    }
}
It's in the district files themselves:

Code:
@base_cost = 300
@city_cost = 500

district_city = {
    base_buildtime = 480
    is_capped_by_modifier = no

    show_on_uncolonized = {
        exists = from
        from = { is_regular_empire = yes }
        OR = {
            uses_district_set = standard
            uses_district_set = hive_world
            uses_district_set = machine_world
        }
    }

    potential = {
        exists = owner
        owner = { is_regular_empire = yes }
        OR = {
            uses_district_set = standard
            uses_district_set = hive_world
            uses_district_set = machine_world
        }
    }

    allow = {
        NOT = { has_modifier = resort_colony }
        NOT = { has_modifier = slave_colony }
    }

    conversion_ratio = 0.5
    convert_to = {
        district_arcology_housing
        district_nexus
        district_hive
    }

    resources = {
        category = planet_districts_cities
        cost = {
            minerals = @city_cost
        }
        upkeep = {
            energy = 2
        }
    }

    planet_modifier = {
        planet_housing_add = 5
    }

    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = {
                has_valid_civic = civic_agrarian_idyll
            }
        }
        modifier = {
            planet_housing_add = -1
        }
    }

    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = {
                is_regular_empire = yes
            }
        }
        modifier = {
            job_clerk_add = 1
        }
    }

    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = { has_non_swapped_tradition = tr_prosperity_public_works }
        }
        modifier = {
            planet_housing_add = 1
        }
    }

    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = {
                has_technology = tech_housing_1
            }
        }
        modifier = {
            planet_housing_add = 1
        }
    }

    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = {
                has_technology = tech_housing_2
                NOT = { has_valid_civic = civic_agrarian_idyll }
            }
        }
        modifier = {
            planet_housing_add = 1
        }
    }

    triggered_planet_modifier = {
        potential = {
            exists = owner
            owner = { has_non_swapped_tradition = tr_prosperity_interstellar_franchising }
        }
        modifier = {
            job_clerk_add = 1
        }
    }

    triggered_desc = {
        trigger = {
            exists = owner
            owner = { is_regular_empire = yes }
        }
        text = job_clerk_effect_desc
    }

    ai_weight = {
        weight = 0
        modifier = {
            weight = 100
            planet = {
                planet_devastation < 1
                years_passed > 10
                free_housing < 4
            }
        }
        modifier = {
            weight = 1
            num_free_districts = { type = district_mining value = 0 }
            num_free_districts = { type = district_generator value = 0 }
            num_free_districts = { type = district_farming value = 0 }
        }
        modifier = {
            factor = 0
            NOT = {
                num_free_districts = { type = district_mining value = 0 }
                num_free_districts = { type = district_generator value = 0 }
                num_free_districts = { type = district_farming value = 0 }
            }
            OR = {
                num_free_districts = { type = district_mining value > 0 }
                num_free_districts = { type = district_generator value > 0 }
                num_free_districts = { type = district_farming value > 0 }
            }
            count_pops = {
                limit = {
                    is_unemployed = yes
                    NOR = {
                        is_pop_category = specialist
                        is_pop_category = ruler
                    }
                }
                count >= 1
            }
        }
        modifier = {
            factor = 0
            NOT = {
                num_free_districts = { type = district_mining value = 0 }
                num_free_districts = { type = district_generator value = 0 }
                num_free_districts = { type = district_farming value = 0 }
            }
            owner = {
                has_resource = {
                    type = minerals
                    amount < 400
                }
            }
        }
        modifier = {
            factor = 0
            NOT = {
                num_free_districts = { type = district_mining value = 0 }
                num_free_districts = { type = district_generator value = 0 }
                num_free_districts = { type = district_farming value = 0 }
            }
            free_jobs > 1
            free_housing > 1
        }
    }
}
 
  • 1
Reactions:
Will every late game colony have quite a few city districts for houseing? All colonies will need more houseing if mineral hubs, food processing plant, energy hubs, foundries and factories grant scaleing jobs. And have you thought on how you will rebalance hive minds?
May I suggest that all base resources are gathered at a rate of 6 per worker for every empire type? With a reduced bonus per tech to 10% and haveing repeatable techs cost double for each previous reapeatable tech you have of that type? (1,2,4,8,16 etc)
And lastly a small buff to traits by haveing industrious/agrarian etc grant +1 to base yield. same as mining guild in mechanics.
 
Why would people be encouraged to make smaller planets industry focused if industrial capacity is a direct function of planet size? Right now smaller planets make better industrial/forge worlds until ecumenepoli because they have just as many building slots as big planets and need city districts to support large populations anyways (since you already need city districts to support large populations of specialists, this isn't an issue). This change would reduce smaller planet's niche to research/admin cap.

Smaller planets will be able to support less industrial jobs. Planets atm have 16 building slots. Subtracting the capital, robot factories, holo theatres, +output buildings like ministry of production, and galactic stock exchange, that leaves 11. A tier three forge/factory can support 8 jobs, and a city district gives 8 housing. Take a size 11 planet: This can support approx 12 [expansion tradition gives one more district] * 8 = 96 housing, and 11 * 8 = 88 jobs. With this new system, that planet could theoretically support 12 * 4 = 48 industrial jobs... which is way less then before, and it would have no housing for any of those workers!

Granted, I don't think this is an actual problem. I don't mind some planets being much better then others, indeed, the sameness of planets is an issue with the current game IMO. I don't like the change because I have a bunch other issues with it. But it does, indisputably, increase the importance of RNG.

Having 11 tier 3 foundries also requires 11 mote refineries on another world (actually less due to excess from bonus production and reduction of upkeep, but still). If we restrict ourselves to only using that planet, then you'd need 5 refineries and 6 T3 foundries, giving only 48 jobs... the exact same amount you get from districts. Now admittedly you'd get some motes from space deposits or offload the production to another world, and in the new model you'll need a district or two to be a city in order to house the extra workers, but it's not the massive disparity that your post described.

But that isn't actually the reason why I said that small planets would be industry focused. It's to answer the question: "What do I do when my planet gets full?". In the old system you could upgrade buildings, offloading the mote production to large rural worlds with plenty of free building slots. And to be fair, you can still do this as a research world or bureaucrat world. But if you do it with industrial districts, then the time you fill up should be just about the time you unlock the Arcology Project. If you unlock it early you can just build some empty districts, if you unlock it later resettle some pops or build some job producing buildings. Now your size 12 planet can support 120 jobs base, plus however many more you can get from the foundry/factory. Yes, eventually you will fill that up to, but at that point you should have another ecumenopolis up and coming as well.

While larger planets do get more benefit out being ecumenopoli, a good player will unlock the AP far earlier then these large planets fill up. Add to the fact that Ecumenopoli are no longer necessary for spamming metallurgists, and I think smaller planets will become the choice for a first ecumenopolis.

If you wanted to add flavor, you could add a variable cost to the arcology project: +x time and minerals per non-city district. The point is that industrial districts are not necessary to reduce the annoying parts of the Arcology project.

If they did change the decision to work that way, that'd be the way to do it. But honestly, even though mechanically it'd be the same as replacing the districts then using the decision, it loses a lot of the flavor. Industrial districts just fit perfectly though.

Should probably be chanted to 5:1 rate for City districts and set to 3:1 rate for Industrial districts. Last I recall building an Ecumenopolis the excess of Residential arcologies was ridiculous.

Considering that a city district with both techs and the tradition gives 8 housing, and a housing Arcology 15, you actually lose housing. The problem is that in order to make an ecumenopolis, you need to fill the planet up, so you build tons of excess city districts. With this change the district of choice to build up in order to make an ecumenopolis will be industrial districts, meaning this won't be the case any more. Industrial districts also remove a lot of the push to go for early Ecus, now they only become necessary once you run out of districts slots. So since you'll only build them when you are out of districts to build up normally, you'll only do it on full planets, and so the district conversion won't have all that excess.
 
  • 3
  • 1Like
Reactions:
@Hansatron Try tagging Eladrin in your post, if you want a dev to see.

"Less" for discrete quantities was good enough for Shakespeare, it's good enough for you :p

The question is not if it was good enough for that pleb Shakespeare. The question is if it's good enough for king Stannis.
 
  • 2
Reactions:
@ImaTomato Maybe you'd like to clarify what exactly about my comment on modded AI you disagree with?

The person I responded to said that MoO2, with an AI mod, had good AI. I rebutted that perfectly, by bringing up an AI mod for Stellaris that makes it more than competent, and reminded him that he was asked for a 4x game, not a 4x game mod.
 
Considering that a city district with both techs and the tradition gives 8 housing, and a housing Arcology 15, you actually lose housing.
Arcologies gain housing from techs and traditions too, +3 each, +9 in total, giving them 24 housing. That said, 1 Residential arcology (15, +9) still has less housing than 5 City districts (25, +15).

So after taking another look, 3:1 ratio would work best for both City and Industrial districts.
DistrictsHousingJobsArcologiesHousingJobs
1-3 City​
5 (+3) – 15 (+9)​
1 (+1) – 3 (+3)​
▷​
1 Residential​
15 (+9)​
5 (+5)​
4-6 City​
20 (+12) – 30 (+18)​
4 (+4) – 6 (+6)​
▷​
2 Residential​
30 (+18)​
10 (+10)​
7-9 City​
35 (+21) – 45 (+27)​
7 (+7) – 9 (+9)​
▷​
3 Residential​
45 (+27)​
15 (+15)​
10-12 City​
50 (+30) – 60 (+36)​
10 (+10) – 12 (+12)​
▷​
4 Residential​
60 (+36)​
20 (+20)​
13-15 City​
65 (+39) – 75 (+45)​
13 (+13) – 15 (+15)​
▷​
5 Residential​
75 (+45)​
25 (+25)​
16-18 City​
80 (+48) – 90 (+54)​
16 (+16) – 18 (+18)​
▷​
6 Residential​
90 (+54)​
30 (+30)​
19-21 City​
95 (+57) – 105 (+63)​
19 (+19) – 21 (+21)​
▷​
7 Residential​
105 (+63)​
35 (+35)​
22-24 City​
110 (+66) – 120 (+72)​
22 (+22) – 24 (+24)​
▷​
8 Residential​
120 (+72)​
40 (+40)​
DistrictsHousingJobsArcologiesHousingJobs
1-3 Industrial​
2 – 6​
2 (+2) – 6 (+6)​
▷​
1 Industrial​
10​
8 (+4)​
4-6 Industrial​
8 – 12​
8 (+8) – 12 (+12)​
▷​
2 Industrial​
20​
16 (+8)​
7-9 Industrial​
14 – 18​
14 (+14) – 18 (+18)​
▷​
3 Industrial​
30​
24 (+12)​
10-12 Industrial​
20 – 24​
20 (+20) – 24 (+24)​
▷​
4 Industrial​
40​
32 (+16)​
13-15 Industrial​
26 – 30​
26 (+26) – 30 (+30)​
▷​
5 Industrial​
50​
40 (+20)​
16-18 Industrial​
32 – 36​
32 (+32) – 36 (+36)​
▷​
6 Industrial​
60​
48 (+24)​
18-21 Industrial​
38 – 40​
38 (+38) – 40 (+40)​
▷​
7 Industrial​
70​
56 (+28)​
22-24 Industrial​
44 – 48​
44 (+44) – 48 (+48)​
▷​
8 Industrial​
80​
64 (+32)​
The total housing of Residential arcologies and the total jobs of Industrial arcologies remain the same, but Residential arcologies add more Clerk jobs and Industrial arcologies add more housing.
 
Last edited:
  • 1
Reactions:
So industrial districts in habitats produce the same as normal planets. Isn't that a bit too weak since as a rule habitat districts produce 50% more jobs.

Maybe turn that +1 alloy and +1 consumer good job to +2 alloy and +1 consumer good job.
 
I am ever present and try to read as much of what the community here says as I can, provided it's constructive :)
Oh, could you take a look at the Ecumenopolis conversion ratios? I think 3:1 (0.33) would work better than the current 2:1 (0.5), there's currently somewhat of an excess of Residential arcologies with 2:1.

So after taking another look, 3:1 ratio would work best for both City and Industrial districts.
DistrictsHousingJobsArcologiesHousingJobs
1-3 City​
5 (+3) – 15 (+9)​
1 (+1) – 3 (+3)​
▷​
1 Residential​
15 (+9)​
5 (+5)​
4-6 City​
20 (+12) – 30 (+18)​
4 (+4) – 6 (+6)​
▷​
2 Residential​
30 (+18)​
10 (+10)​
7-9 City​
35 (+21) – 45 (+27)​
7 (+7) – 9 (+9)​
▷​
3 Residential​
45 (+27)​
15 (+15)​
10-12 City​
50 (+30) – 60 (+36)​
10 (+10) – 12 (+12)​
▷​
4 Residential​
60 (+36)​
20 (+20)​
13-15 City​
65 (+39) – 75 (+45)​
13 (+13) – 15 (+15)​
▷​
5 Residential​
75 (+45)​
25 (+25)​
16-18 City​
80 (+48) – 90 (+54)​
16 (+16) – 18 (+18)​
▷​
6 Residential​
90 (+54)​
30 (+30)​
19-21 City​
95 (+57) – 105 (+63)​
19 (+19) – 21 (+21)​
▷​
7 Residential​
105 (+63)​
35 (+35)​
22-24 City​
110 (+66) – 120 (+72)​
22 (+22) – 24 (+24)​
▷​
8 Residential​
120 (+72)​
40 (+40)​
DistrictsHousingJobsArcologiesHousingJobs
1-3 Industrial​
2 – 6​
2 (+2) – 6 (+6)​
▷​
1 Industrial​
10​
8 (+4)​
4-6 Industrial​
8 – 12​
8 (+8) – 12 (+12)​
▷​
2 Industrial​
20​
16 (+8)​
7-9 Industrial​
14 – 18​
14 (+14) – 18 (+18)​
▷​
3 Industrial​
30​
24 (+12)​
10-12 Industrial​
20 – 24​
20 (+20) – 24 (+24)​
▷​
4 Industrial​
40​
32 (+16)​
13-15 Industrial​
26 – 30​
26 (+26) – 30 (+30)​
▷​
5 Industrial​
50​
40 (+20)​
16-18 Industrial​
32 – 36​
32 (+32) – 36 (+36)​
▷​
6 Industrial​
60​
48 (+24)​
18-21 Industrial​
38 – 40​
38 (+38) – 40 (+40)​
▷​
7 Industrial​
70​
56 (+28)​
22-24 Industrial​
44 – 48​
44 (+44) – 48 (+48)​
▷​
8 Industrial​
80​
64 (+32)​
The total housing of Residential arcologies and the total jobs of Industrial arcologies remain the same, but Residential arcologies add more Clerk jobs and Industrial arcologies add more housing.

And I'm still curious, what are your thoughts on shifting Industrial district jobs with planetary decisions instead of planet designations?

And what can we expect from Ecumonopolis and Ringworld districts and jobs? Would it be anything like what I wrote down in these Ecumenopolis and Ringworld concepts? And would you be open to taking some of the suggestions made for building and job tweaks?
 
Last edited:
Oh, could you take a look at the Ecumenopolis conversion ratios? I think 3:1 (0.33) would work better than the current 2:1 (0.5), there's currently somewhat of excess of Residential arcologies with 2:1.



And I'm still curious, what are your thoughts on shifting Industrial district jobs with planetary decisions instead of planet designations?

And what can we expect from Ecumonopolis and Ringworld districts and jobs? Would it be anything like what I wrote down in these Ecumenopolis and Ringworld concepts? And would you be open to taking some of the suggestions made for building and job tweaks?

I'm not the dev you're after! You want Eladrin for that ;)
 
  • 1
  • 1Like
Reactions: