• 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.

Stellaris Dev Diary #120 - New Economy System

Hello and welcome back to the Stellaris dev diaries! Today we're going to start talking about the next major update, which we have dubbed 2.2 'Le Guin' after Ursula K. Le Guin. Right now we're not ready to reveal anything about the precise nature of the update or whether it is accompanied by any DLC, other than to say that the Le Guin will have focus on trade and the economy, and that its release date is far away. Today's dev diary is going to be a bit on the foundational side, going over the new economic back-end we've implemented for 2.2.

New Economy System
The original economy system for Stellaris has always been something of a limitation for us. It's a sort of hybrid system, with resources being both scripted (and thus accessible to modders) and hard-coded (and thus inaccessible) in about equal measures. For example, under the old system ships would always cost minerals, as the code was set up for them to always cost minerals, and the only thing you could change was the amount of minerals they cost. Similarly, most things in the game that had an upkeep were hard-coded to use energy for upkeep, and again, only the amounts were able to be changed. A few things (such as for example Resettlement or the precise resources produced by a building) were more open than this, but generally the system made it quite hard to introduce new resources or change the way a particular empire might use a particular resource. The old system was also quite performance-intensive.

When we decided that we wanted to make the next major update be about the economy, the first thing we knew that we needed to do was to rewrite this system entirely. For the new system, we set out a number of goals:
1: The new system should make it easy to add new resources and swap the way resources are used
2: The new system should be as open to modding as we possibly could make it
3: The new system should improve performance

From this, we've created a new system that we call Economic Templates. Where previously there would be a jumble of different systems for how cost, production and maintenance of the different features in the game would work, there is now one unified system. Any single object in the game that can be owned by an empire and have an impact on the economy is called an Economic Unit. In the database files, an Economic Unit looks like this:

Code:
resources = {
    category = armies
 
    # Normal empires pay for armies with minerals
    cost = {
        trigger = {
            owner = { is_hive_empire = no }
        } 
        minerals = 100
    }
 
    # Hive Minds pay for armies partially with food
    cost = {
        trigger = {
            owner = { is_hive_empire = yes }
        }     
        minerals = 50
        food = 50
    }     

    # If Barbaric Despoilers, produce Energy while on enemy planets
    produces = {
        trigger = {
            owner = { has_valid_civic = civic_barbaric_despoilers }
            planet = { owner = { is_at_war_with = root.owner } }
        }
        energy = 3
    }     
 
    # Normal empires pay army upkeep with energy
    upkeep = {
        trigger = {
            owner = { is_hive_empire = no }
        }     
        energy = 1
    }
 
    # Hive Minds pay army upkeep with food
    upkeep = {
        trigger = {
            owner = { is_hive_empire = yes }
        }     
        food = 1
    }     
}

For those who cannot read our scripting language, this is an example I just created of how the new system can be used. It's for a regular assault army, which normally costs 100 minerals to build and has an upkeep of 1 energy, just as before. However, if your empire is a Hive Mind, the army will instead cost 50 minerals and 50 food, and costs 1 food in upkeep instead of 1 energy. Additionally, if you have the Barbaric Despoilers civic, armies that are located on enemy planets will produce 3 energy/month, paying for themselves and then some through wide-scale looting. This isn't an actual example from the internal build, but something I just created while writing this dev diary to show the possibilities that the new economic system opens up for for both us and modders - we could have fully biological empires that use food instead of minerals to build infrastructure, ships that produce research while in certain systems, leaders that give Unity... the possibilities are endless.
2018_08_09_1.png


Advanced Resources
With this system in place, we've been able to add several new 'advanced' resources to the game. They are as follows: Alloys, Rare Crystals, Volatile Motes and Exotic Gases. These resources are either manufactured from basic resources or found in rare planetary deposits (or both!) and are used to construct more advanced things in the game, such as ship components, megastructures, certain buildings and so on. There is also still a number of strategic resources such as Dark Matter and Living Metal that provide unique benefits, though precisely how many of these we will keep and how they are used is something we're still in the process of figuring out.

As part of these changes we're also in the process of reworking the top bar. Since we will now have rather too many resources to show them all, the top bar will now only show individual entries for resources that are important for your empire to always keep track of, with the rest shown as a consolidated entry that can be tooltiped for greater detail. Science is also consolidated into a total output of all 3 sciences, with tooltip showing the individual production of each. We're going to ensure that only relevant resources are shown individually, so most Machine Empires wouldn't have Food appear as an individual entry in the top bar, for example. We're also considering letting the player manually override this and decide which precise resources they want to keep track of within the available topbar space.

(Please note that the new topbar is nowhere near final and will have some ugly graphical issues. This is not how it will look on release)
2018_08_09_2.png


That's all for today! I know this dev diary was rather technical and perhaps primarily of interest to modders, but I felt it was important to explain the fundamental changes that have taken place in the game's back-end, both in relation to the changes coming in 2.2, and the possibilities that this opens up in the future for having empire types with radically different approaches to resource production and consumption. Next week we're going to finally start talking about the new Planetary Management system. See you then!
 
As a modder, I'm looking forward to this new update. The new economy system looks brilliant and really opened to modders. Thank you for that. :)
 
The original economy system for Stellaris has always been something of a limitation for us. It's a sort of hybrid system, with resources being both scripted (and thus accessible to modders) and hard-coded (and thus inaccessible) in about equal measures. For example, under the old system ships would always cost minerals, as the code was set up for them to always cost minerals, and the only thing you could change was the amount of minerals they cost. Similarly, most things in the game that had an upkeep were hard-coded to use energy for upkeep, and again, only the amounts were able to be changed. A few things (such as for example Resettlement or the precise resources produced by a building) were more open than this, but generally the system made it quite hard to introduce new resources or change the way a particular empire might use a particular resource. The old system was also quite performance-intensive.

When we decided that we wanted to make the next major update be about the economy, the first thing we knew that we needed to do was to rewrite this system entirely. For the new system, we set out a number of goals:
1: The new system should make it easy to add new resources and swap the way resources are used
2: The new system should be as open to modding as we possibly could make it
3: The new system should improve performance
The amount of refactoring this had to require has got to be very, very scary.
 
This isn't an actual example from the internal build, but something I just created while writing this dev diary to show the possibilities that the new economic system opens up for for both us and modders - we could have fully biological empires that use food instead of minerals to build infrastructure, ships that produce research while in certain systems, leaders that give Unity... the possibilities are endless.

There's a key question for how open this is to modders - how does overwriting work? I assume that you will have to overwrite the whole entry, which means that only one modder at a time can do it. This means the possibilities are far from endless! But it would seem to me that this could be done in a way that there is a "default" for each economic template and additions are additive like with on_actions (only based on the triggers, in the case where they overlap the first is read), unless you actually overwrite the default or the key for one of the other Vanilla specifications.
 
Last edited:
All armies are not the same. The 'armies' tag in the resource unit tells the new economy system where it should apply costs, discounts, how it should organize the tooltip, etc. These tags can be dynamically scripted and will automatically generate modifiers, etc, so you can have modifiers that only apply to certain types of armies, for example.
I guess what you mean is like the HoI 4 Division tag categories?
Code:
categories = {
    category_front_line
    category_light_infantry
    category_all_infantry
    category_army
}
Where specific modifiers target "all Frontline", while others only target light infantery (foot infantery)?
 
Hi Wiz
I played with a mod that expanded the topbar once but this disabled achievements sadly.
Could you make editing the topbar via mods achievement compatible while you are working on it?

Rest of the update looks awesome
 
The amount of refactoring this had to require has got to be very, very scary.

We basically deleted almost the whole old system and made a new one. One of our programmers has been plugging away at this for quite a while.
 
Hello and welcome back to the Stellaris dev diaries! (....)

Glad that you changed your mind about economy. "Barebone" economy realy limited reasons to expand, do diplomacy and try the new things. Now if we need f.e. Ubercristalium to use improved Tachion Lance, that will be a BIG reason for conquest or trade or whatever. Same with megastructures and terraforming. Want some of that? Get your terraforming resources first.
 
I hope you gain a significant amount of Exotic Gas from that one alien smell box event. I'm going to be severely disappointed if we don't.
 
I guess what you mean is like the HoI 4 Division tag categories?
Code:
categories = {
    category_front_line
    category_light_infantry
    category_all_infantry
    category_army
}
Where specific modifiers target "all Frontline", while others only target light infantery (foot infantery)?

You only have one category, but categories can have parent categories, so you could have a light_infantry tag that has armies as parent, light_infantry would only affect it and armies would affect it as well. This is also used to generate more cohesive tooltips even if you have a myriad of economic tags.
 
Just as a note, please fix the layout accordingly with all the new UI stuffs and resources so that the big numbers dont overlap and make everything unreadable, iam tired of guessing which numbers might be standing there on the overlaping digits (late game ofcourse)

On the screen its all readable and so... because it doesnt take into consideration large numbers on the ui
 
Am I right in thinking that this means we could conceivably move towards non-carbon based life populations? Have an empire of silicates whose pops eat energy or minerals instead of food?