1. Stellaris
  2. News

Stellaris News

Stellaris Dev Diary #253 - Three in One 3.4 'Cepheus' Patch Notes and more!


written by Obidobi, Caligula and Eladrin



Hello everyone!

I hope you are all excited to get your hands on our next expansion ‘Overlord’ next week! Expanding on the Subject/Ruler dynamic has been something that we know a lot of you (and us, internally) have been wanting for a very long time, so it’s really amazing to finally see it come to fruition!

So to hold you over until Overlord release, here is the usual Dev Diary containing the changelog for you to read!

But first, we have a few Community events to talk about:

Today at 1700 CEST (UTC + 2), join us on the Official Stellaris Discord for our Overlord Dev Q&A! Have a question about something in today’s patch notes? Stop by and ask!

As well, join us starting at 1400 CEST on May 7th and 8th, for our Content Creator Multiplayer Showcase. We’ll be streaming Overlord all weekend on Twitch and YouTube, with some of our favorite community content creators!

[h2]Click here to read the 3.4 "Cepheus" Patch Notes[/h2]

Wishlist Overlord today!

[h2]Moddability Changes in 3.4 ‘Cepheus’[/h2]

I’m going to keep this one fairly brief, by my standards. Recent updates have given modders plenty to get their teeth into, and 3.4 is no different. We already described the Situations system a few weeks back, which will doubtless see much use and abuse from modders, so I’ll focus on other scripting language changes.

The biggest improvement that springs to mind is in the field of modifiers. In triggered modifiers, you can now define a “mult” value, which lets you apply a modifier or script value to that triggered modifier:

triggered_pop_modifier = {
potential = {
NOT = { is_same_species = owner }
}
modifier = { pop_citizen_happiness = 1 }
mult = modifier:non_main_species_happiness_mult
}


As you can see, I’ve defined a modifier that we do not have in the game there. That is because we can now define our own ad hoc modifiers in script, for instance:

non_main_species_happiness_mult = {
icon = mod_planet_happiness_mult
percentage = yes
good = yes
category = pop
}


This modifier will of course only do something so long as it is applied somewhere, but nowadays there’s plenty of places where that is possible (everywhere that script values are valid). For instance, we have refactored species traits’ amenities and trade output from jobs to use this system, which cut down on the effort it takes to tweak their numbers (and let us track down a few bugs in that regard).

As a low-key but quite nice improvement, you will also no longer get load order errors where certain modifiers do not work in certain contexts (e.g. ethos modifiers in traits).

That’s not all we have done. Developing Overlord naturally provided some opportunities to rework old systems. For instance, thousands of lines were saved in the scripts for enclaves by using the new “event inheritance” system. With this, an event can be specified to inherit properties from another via “base = ”. Then, various properties can be overwritten via “desc_clear”, “option_clear”, “picture_clear” and “show_sound_clear”. Basically, this lets us inherit the behaviour of a given event while changing its flavour.

The list goes on. A new common/tradable_actions folder now lets you define custom actions that you can trade with other empires. For instance, subjects can pledge loyalty to their Overlords in return for other benefits. The folder is also extensively documented:

# trade_action_my_example_action = {
# # If this is set to 'yes', then the action will be fired and then removed from the trade deal.
# # If 'no', then the trade deal will be treated as a treaty that lasts for at least 10 years.
# fire_and_forget = no
#
# # Determines if the action will show up in the list in the trade deals view.
# # SCOPE: Country "giving" the action
# # FROM: Country "receiving" the action
# potential = {
# has_overlord = from
# is_specialist_subject_type = { TYPE = bulwark }
# }
#
#
# If this trigger returns 'no', then the trade deal will be cancelled. Checked on daily tick. Only relevant if fire_and_forget is 'no'.
# # SCOPE: Country "giving" the action
# # FROM: Country "receiving" the action
# active = {
# has_overlord = from
# is_specialist_subject_type = { TYPE = bulwark }
# }
#
# # Effect that fires when the trade deal is accepted.
# # SCOPE: Country "giving" the action
# # FROM: Country "receiving" the action
# on_traded_effect = {
# from = {
# set_galactic_custodian = yes
# }
# }
#
# # Effect that fires when the trade deal ends. Only relevant if fire_and_forget is 'no'.
# # SCOPE: Country "giving" the action
# # FROM: Country "receiving" the action. Not guaranteed to be valid, since a trade deal is cancelled if one of the countries dies.
# on_deal_ended_sender_effect = {
# }
#
# # Effect that fires when the trade deal ends. Only relevant if fire_and_forget is 'no'.
# # SCOPE: Country "receiving" the action
# # FROM: Country "giving" the action. Not guaranteed to be valid, since a trade deal is cancelled if one of the countries dies.
# on_deal_ended_recipient_effect = {
# set_galactic_custodian = no
# }
#
# # Used to determine how much the AI will value the action in a trade deal.
# ai_weight = {
# weight = 1
#
# modifier = {
# weight = 2
# from = {
# is_galactic_custodian = no
# }
# }
# }
# }


Speaking of the AI and diplomacy, diplomatic actions are now a little bit more controllable from script. While they (and AI logic surrounding them) are still handled to a significant degree in code, additional reasons for the AI to accept or decline the proposals can now be scripted in an “ai_acceptance” field, while a “should_ai_propose” field lets you block the AI from proposing it.

Finally, something that modders need to know about is our changes to synced localisation. Or rather, the fact that we have completely removed it. This means that, everywhere where it was used, we now use the normal localisation system instead. There are several advantages of this:

Multiplayer will now work, even if one player is playing in Chinese and one player in English (this does not currently work)
It is theoretically possible to translate all names into other languages now. (Unfortunately, however, I can’t promise that we’ll ever do that, because European languages all have complicated grammar rules, and we have yet to work out a reasonable way to deal with them. But still, the possibility is pretty cool).

Unfortunately, there are also some complications, which can be summed up as: we need to save a property as it is at the time something is named (i.e. the property may change later - but this should not affect what it localises as), and also make sure that it is localising correctly no matter which language you are playing in.

Basically, this means that if you want to use bracket commands in setting names, you need to register it in the place where you are setting the name, e.g.:

set_name = {
key = "NAME_Absorbed_Species"
variable_string = "[Root.GetSpeciesNamePlural]"
}
NAME_Absorbed_Species:0 "Absorbed [Root.GetSpeciesNamePlural]"


Empire names in the random_names directory have a new “lookups” line to serve this purpose:

# Imperial Spiritualist 2
empire_name_format = {
random_weight = {
factor = 0
modifier = {
add = 1
has_government = "gov_theocratic_monarchy"
is_pirate = no
is_primitive = no
NOT = { is_country_type = fallen_empire }
NOT = { is_country_type = awakened_fallen_empire }
}
}
lookups = " [This.Capital.GetName]"
format = format.imp_spi.2 # of [This.Capital.GetName]
noun = format.homeworld # [This.Capital.GetName]
prefix_format = format_prefix.imp_spi.2 # [This.Capital.GetName]
# Empire of Earth
}


In cases where names were defined inline in script, which is quite common in mods, it will likely continue to work as it used to (so long as no square bracket commands are used). I can’t entirely vouch for this, since we don’t use this functionality inhouse as it would break Chinese (and now also Korean and Japanese) translations, since they have always translated names. It may also cause issues if the name you are setting something to is a key that is localised, but which you did not intend to refer to… (N.B. name lists now also use localisation keys).

As a word of caution, each square bracket command we make available has to be defined to work in the C++ code. We have tried our best to cover all the cases which one could want to use, but there may be some we’ve missed (in this case, the error log will complain about invalid property “GetXPersistent”). If there are any particularly egregious cases we turn out to have missed, please file bug reports and we’ll see what we can do!

[h2]Progenitor Hive Origin[/h2]

This week’s origin reveal from Nivarias is the Progenitor Hive!



In the beginning, the Progenitor was.

Life on your homeworld was harsh and competitive, yet still the mighty Progenitor expanded its territory. Running such a vast dominion soon grew untenable, so the Progenitor created the first Offspring. In time, it became apparent that the Offspring could not manage alone. In turn, they produced menial drones to assist in taming our home.

As you took your first tentative steps across the stars, the Progenitor sequestered itself into a specialized nest. Endowed with greater, streamlined control, you are now ready to spread the Progenitor's influence to all the stars of the galaxy - for the Progenitor was, is, and will be.


The Progenitor Hive origin is a new Hive Mind origin coming in Overlord, and as such it also requires Utopia to play.

The hive relies heavily on the presence of powerful Offspring. While they are near, the hive thrives and functions with great efficiency.

Offspring Vessels can be included in your fleets, providing an aura that cancels out the inherent penalties of your ships, providing a net small bonus. You are limited in the number of Offspring Vessels your empire can support at any given time, based on your overall naval capacity, similar to the Titan limit. The Offspring Vessels share a pool, with larger ships taking a greater portion of the pool.



There’s also a starbase building to protect your empire space, which provides greater benefits than the ships.



The Offspring Nest replaces the Spawning Pools of regular hives, providing additional bonuses. You’ll want one of these on each of your planets.



Make sure someone is working the Offspring Drone job, since otherwise the directionless menial drones on your colonies face difficulties.



All employed leaders within a Progenitor Hive, passively gain experience at a steady rate, gaining skill levels at a much faster rate than leaders of other empires. On average, with no experience boosts or other sources of experience, they will passively gain a level about every (1.5 * level they’re going to) years.

Unlike other hives, the Progenitor is able to release sectors as vassals, placing the fate of the sector in the tendrils of an Offspring which is promoted to Progenitor status and becomes the ruler of the new empire. Progenitor subjects released inherit the Progenitor Hive origin from your empire, with all the bonuses and penalties that it entails.



Should you have a subject that is not a Progenitor Hive, you can build an Offspring Nest on their world, providing some much needed oversight to their dro- er, workers. They’re basically the same thing, right?



There’s also one other (non-Progenitor Hive related) holding to reveal!

Overlords with the Environmentalist civic can build a Ranger Lodge, which reduces consumer goods usage on the subject planet but also creates a Nature Preserve blocker, which cannot be removed as long as the lodge exists.



The Ranger Lodge can only be built on natural planets that have districts available to block, and cannot be built on Ecumenopolies, Hive Worlds, Machine Worlds, or Relic Worlds.



Wishlist Overlord today!

Stellaris: Overlord - Origin Highlight #5 - Progenitor Hive

[previewyoutube][/previewyoutube]

Today we're taking a First Look at the Progenitor Hive Origin with Nivarias!

Your hivemind has gained an evolutionary advantage through semi-independent leaders. These Offspring greatly improve overall proficiency but require constant oversight.

Wishlist Overlord!

Stellaris Dev Diary #252 - Artificial and Automated Intelligence

written by Offe the Human and Eladrin



[previewyoutube][/previewyoutube]

Hello everyone, it is me Offe, one of the Humans working on Stellaris. Today I will bring you an update from the Custodian AI initiative. Before we dive into today’s dev diary let’s do a quick recap of the AI work that went into the 3.3 patch.

If you have been following the AI dev diaries you probably know that our main objectives for the 3.3 Libra patch was to improve the economy management of the AI, especially with a mid and late game perspective in mind. The reason for this was to establish the AI empires as relevant actors beyond the early game and give their interactions with the player more impact.

Following some of the discussions here on our own forums and also on Reddit, my favorite topic has been seeing people react to AI empires suddenly being much stronger in the Galactic Community where they are passing resolutions against the players' will.

While the AI economy management still has areas which can be improved, we felt satisfied with the changes made in 3.3 to the point where we wanted to move our focus to other areas of the AI.

[h3]Goals for 3.4[/h3]

As the AI economy improved other areas of the AI started to become more obvious targets for improvement, namely the AI military fleet management and their diplomacy interactions with the player.

[h3]Military AI behavior changes[/h3]

First I would like to say that the changes coming to military fleet behavior in 3.4 are mostly bug fixes rather than improvements on their decision making, so while there should be a very noticeable difference, the work made so far on the fleet behavior will not be as encompassing as the work made for the economy.

Let’s start with the Elephant in the room: AI splitting their fleets into tiny pieces.



While there were issues where AI would split their fleets too much, fundamentally this behavior of AI splitting fleets was by design. The AI would allocate just enough fleet power (with a +25% margin) to their objective in order to carry out as many objectives as possible. The main issue came from the amount of low fleet power targets such as unupgraded starbases which caused the AI to frequently split their fleets into 1000~ fleet power pieces.

In theory this approach is quite good, however, the main two main issues with this approach are that the player can easily just take one of their bigger fleets to go around and defeat the AI’s smaller fleets one by one which makes the AI somewhat incompetent, as well as that this playstyle from the AI can be quite frustrating to play against.

In 3.4 the AI will aim to have full fleets as their smallest unit to carry out military objectives, AI will actively try and merge all possible fleets during peacetime and the AI will during a war try and merge two nearby fleets when possible.

[h3]Cycling Fleet Orders[/h3]

After having made the AI fill up their fleets, the next issue to tackle was AI fleet order cycling where the fleets get stuck alternating between two orders indefinitely. One common cause for this was when the AI assigned several fleets to carry out an objective together, the fleets would try and regroup with each other by moving to the system of the other fleets causing them to switch places over and over.



[h3]Take Point[/h3]

In 3.3 we made the AI obey the Take Point behavior again, but it didn’t work quite as well as we wanted. For example allied AI fleets would sometimes follow the players fleets when they shouldn’t. There were also issues where the AI would suddenly change their mind and stop following the player, and they would also not always follow the player with all their fleets.

[h3]AI Allied Wars[/h3]

During a war with several involved AI Empires on the same side, one of the AIs will be considered leading the war (may be different from diplomatic war leader) and the other AIs will put their fleets to follow the “AI warleader”. This suffered from a similar issue as previously mentioned where the AI fleets which were supposed to follow would change their mind too often and never reach their intended target.

[h3]AI Outside Diplomatic War[/h3]

In 3.4 we are adding an AI war state which becomes activated when the AI fights a mid or late game crisis, this state of war will continue until the crisis has been defeated. This means that AI will now enable their normal war behavior against targets like the Great Khan even though they do not have a diplomatic war if they or any of their allies get attacked.

This has many side effects, for example:

  • AI empires should now obey the players Take Point if the player is fighting a crisis
  • Allied AI empires should now help each other fight crises when one of them are attacked
  • AI empires will now seek out and destroy systems controlled by crisis empires et cetera.


We also addressed the issue where an AI empire would fight a neutral target such as a leviathan during an ongoing war.

[h3]AI War Preparation[/h3]

In 3.4 we are adding a state of war preparation for the AI which they will enter when they would have immediately declared war in 3.3. During this phase the AI will gather their available fleets and move them towards the border of their target.

If you have enough military intel you will be notified via an alert that hell is about to break loose and depending on how much intel you have you will get a more accurate estimation on when the AI will strike.



[h3]AI Diplomacy[/h3]

Now that we have covered military changes coming in 3.4 lets go over the diplomacy changes

[h3]Federation AI changes[/h3]

One of the biggest complaints regarding being in a Federation with the AI has been the unrelenting bombardment of proposals of changing the same federation law over and over again. Often resulting in AI empires stacking the negative opinion modifier on themselves and eventually leaving the federation altogether.

In 3.4 we are introducing a 10 year AI vote cooldown for each law category. So let’s randomly select a federation law to use as an example: Free Migration. When an AI proposes to change the law of Free Migration then it will add a 10 year AI only cooldown which is shared between all AI federation members. This means that each time Free Migration gets voted down it will now take at least 10 years before it is proposed again.

Coincidentally this also fixes an exploit that the player could use against AI federations where the player would repeatedly ask to initiate a vote to invite the player into the AI federation. This allowed the player to repeatedly stack the negative opinion modifiers between the AI federation members causing their federation to break apart.

[h3]Envoys[/h3]

Another common complaint regarding AI federations is how the AI would often not put any envoys into the federation. This was a symptom of a bigger problem which was the overall AI envoy usage.

The AI empires would frequently reassign their envoys to the same task, knocking out the envoy who was already assigned to it and starting the reassign cooldown. As a result the AI would often have all but one of their envoys on cooldown and not assigned to any task.

In 3.4 the AIs should be able to handle their envoys in a much more appropriate manner, both in terms of Federation and Galactic Community assignment as well as other diplomatic actions and espionage operations.

[h3]Galactic Community Changes[/h3]

While AI voting for seemingly completely irrelevant resolutions in the Galactic Community gave it a sense of uncomfortable realism there were a few issues that stood out to us:

AI would sometimes propose resolutions that were completely against their core beliefs, for example, a slaver empire would sometimes propose to ban organic slave trading. This was due to a missing willingness check when AI would propose resolutions, so they AI would propose the resolution they liked the most but wouldn’t check if they liked it enough to be worth proposing in the first place.

The AI was explicitly forbidden to withdraw their proposed resolution, while most of the time this does not make sense, there are situations where this may be the best course of action. For example, the AI may propose to reduce the council size but by the time the resolution is about to enter the floor their diplomatic weight has been reduced to the point where they would propose themselves out of the council.

Similarly the AI was also forbidden from opposing their own resolution, but the above situation could happen in a similar way where, for example, the player would enact the Emergency Measure to move the resolution to the floor before the AI has time to withdraw their resolution. In that situation it would make sense for the AI to oppose their own proposed resolution.

Additionally if you have enough intel on the AI you will now be able to see why they are voting the way they do in the Galactic Community. While this tooltip was already quite big, I knew I could make it even bigger.



[h3]Planet and Sector Automation[/h3]

While planet and sector automation isn’t necessarily AI, we have seen a lot of requests for previous AI improvements to also be available for the player. And even though the planet/sector automation uses a different system than the AI’s economy system we still felt that improving this would hopefully add a lot of quality of life value to our players.

The design philosophy for the new automation system is that “most players will be able to use some parts of it”. So the intention is not that all players will always use this and that it will be able to satisfy all players, rather that hopefully everyone will find something that they feel is worth using.



So how does it work? In 3.4 the planet automation will have an additional settings UI where players can toggle components on/off for each planet individually as well as setting default values for newly colonized planets.

The most impactful setting is this one, the Designation



This will cause the planet to build new jobs in accordance with the designation when there are no free jobs available. This setting is now much more restrictive in regards to what is considered to be in accordance with the designation, for example, enabling this for a mining designation will only construct the mining districts and the mineral purification plant and nothing else.

The other settings are:
  • Amenities: Build new amenities buildings and also micromanage the priority of amenity producing jobs to minimize unnecessary amenity jobs by using the same system as the AI has been using since 3.3.
  • Rare resources: Build new rare resource producing buildings to target a +3 monthly income of all rare resources. Additionally this will now take into consideration empire wide buildings in the building queue and only build one building at a time.
  • Pop assembly: Build spawning pools, cloning vats, robot assembly et cetera.
  • Housing: Construct additional housing, either districts or building when needed.
  • Building slots: Automatically build a new housing district for the +1 building slot whenever there are no free building slots, especially useful to enable on automated planets like Science designation since they require many building slots.
  • Crime: Build new crime prevention buildings when crime reaches dangerous levels.
  • Clear blockers: Automatically clear blockers when it is preventing construction of new districts.
  • Posthumous Employment: Builds the Posthumous Employment Center on planets with raw resource focus.
  • Psi Corps: Build the Psi Corps building on all planets when possible.

The Designation automation setting is extra careful to not overbuild buildings whereas the other settings will build buildings even when there is no need for additional jobs.

All the automations except the Amenity automation (uses AI behavior in code) are fully scriptable for anyone interested in making their own automation mod, the files are found in:

game\common\colony_automation
game\common\colony_automation_exceptions


[h3]Sector Automation[/h3]

Sector automation is now a system built on top of the planet automation. Setting the sector focus will now change which designations planets will select when they are using the “automatic designation selection” in order to make them respect the sector automation.



Additionally there is now a Unity focus available for sector automation since Unity is now more important after the 3.3 patch, together with new Unity automation for planets to go along with it.



The requirement to have an upgraded capital building in order to construct Research labs and rare resource producing buildings has now been removed in order to make the planet automations function properly for newly founded colonies with these designations.

We have also added several missing designations to different planet types in order to allow for more automation, for example, Ring World can now use factory/forge world designation and Hive Worlds can now use the fortress designation.

Lastly, I am sad to say that my designated time on the Custodian team has already been over for a while now, which means that this will be the last AI dev diary from me. But the AI initiative lives on and next time there is an AI update you may get the chance to meet a new Human. Again I want to say a special thank you to all the community members who have engaged in meaningful discussions regarding the AI improvements in the past months and tirelessly reporting the AI issues on the bug forum.

Thank you!

[h3]Subterranean[/h3]

Hi! Eladrin tagging back in for a bit.



This week Nivarias revealed the Subterranean origin. Tunneling underground is a bit more expensive than building on the surface, but has its advantages, especially when a hostile force attempts to bombard your cities.

Lithoids are unaffected by the pop growth penalty

The primary species of a Subterranean empire gains the Cave Dweller trait, granting additional mineral production at the cost of pop growth and empire size from pops, as well as a new Minimum Habitability trait. Cave-Dwelling pops are well sheltered from the environment on the surface, and treat any habitable planets below 50% habitability as if they were 50%.

I am a dwarf and I’m digging a hole.

Living underground, Subterranean empires have a unique city set that replaces the normal view on planets.

Are you the king of the mountain?

One of the achievements revealed last week, named Underlord, has to do with answering the question “Is it possible to dig too deep?”

[h3]Next Week[/h3]

Well look at the time, we’re coming right up to the release of Overlord, aren’t we?

The Stellaris 3.4 “Cepheus” patch notes will be coming next week, alongside details of the Progenitor Hive origin. After the patch notes, join us on the Official Stellaris Discord for a Dev Q&A, starting Thursday at 1700 CEST!

See you there!

Stellaris: Overlord - New Origin Highlight #4 - Subterranean

[previewyoutube][/previewyoutube]

Today we're going to be taking a first look at the Subterranean Origin with Nivarias!

Whether you were avoiding predators or seeking easier access to resources, your species evolved to live under the surface of your homeworld, leading to a more environmentally versatile society.

Wishlist Overlord today!


Stellaris: Overlord expansion confirmed for release on May 12

Ready to become the overlord of others in Stellaris? You're going to get your chance when Stellaris: Overlord releases officially on May 12, 2022.

Read the full article here: https://www.gamingonlinux.com/2022/04/stellaris-overlord-expansion-confirmed-for-release-on-may-12