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 its 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 todays 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. Well be streaming Overlord all weekend on Twitch and YouTube, with some of our favorite community content creators!
Click here to read the 3.4 "Cepheus" Patch Notes
Wishlist Overlord today!
Moddability Changes in 3.4 Cepheus
Im 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 Ill 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, Ive 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 theres 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).
Thats 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 = # 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 cant promise that well 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 cant entirely vouch for this, since we dont 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 weve 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 well see what we can do!
Progenitor Hive Origin
This weeks 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.
Theres 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. Youll 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 theyre 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. Theyre basically the same thing, right?
Theres 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!
[ 2022-05-05 11:04:22 CET ] [ Original post ]
- Linux [153.28 M]
- Stellaris: Infinite Frontiers eBook
- Stellaris: Plantoids Species Pack
- Stellaris: Leviathans Story Pack
- Stellaris: Utopia
- Stellaris: Nova Edition Upgrade Pack
- Stellaris: Galaxy Edition Upgrade Pack
- Stellaris: Anniversary Portraits
- Stellaris: Synthetic Dawn
- Stellaris: Apocalypse
- Stellaris: Humanoids Species Pack
- Stellaris: Distant Stars Story Pack
- Stellaris: MegaCorp
- Stellaris: Ancient Relics Story Pack
- Stellaris: Lithoids Species Pack
- Stellaris: Federations
- Stellaris: Necroids Species Pack
- Stellaris: Nemesis
- Stellaris: Aquatics Species Pack
- Stellaris: Overlord
- Stellaris: Toxoids Species Pack
- Stellaris: First Contact Story Pack
- Stellaris: Galactic Paragons
- Stellaris: Astral Planes
- Stellaris: Expansion Subscription
- Stellaris: The Machine Age
- Stellaris: Cosmic Storms
- Stellaris: Grand Archive
- Stellaris: Rick the Cube Species Portrait
Featuring deep strategic gameplay, a rich and enormously diverse selection of alien races and emergent storytelling, Stellaris has engaging challenging gameplay that rewards interstellar exploration as you traverse, discover, interact and learn more about the multitude of species you will encounter during your travels.
Etch your name across the cosmos by forging a galactic empire; colonizing remote planets and integrating alien civilizations. Will you expand through war alone or walk the path of diplomacy to achieve your goals?
Main Feature
- Deep & Varied Exploration.
- Enormous procedural galaxies, containing thousands of planets.
- Explore Anomalies with your heroic Scientist leaders.
- Infinitely varied races through customization and procedural generation.
- Advanced Diplomacy system worthy of a Grand Strategy Game.
- Ship Designer based on a vast array of technologies.
- Stunning space visuals.
- OS: Ubuntu 20.04 x64
- Processor: Intel iCore i3-530 or AMD FX-6350Memory: 4 GB RAM
- Memory: 4 GB RAM
- Graphics: Nvidia GeForce GTX 460 or AMD ATI Radeon HD 5870 (1GB VRAM). or AMD Radeon RX Vega 11 or Intel HD Graphics 4600Network: Broadband Internet connection
- Storage: 12 GB available space
- OS: Ubuntu 20.04 x64
- Processor: Intel iCore i5-3570K or AMD Ryzen 5 2400GMemory: 4 GB RAM
- Memory: 4 GB RAM
- Graphics: Nvidia GeForce GTX 560 Ti (1GB VRAM) or AMD Radeon R7 370 (2 GB VRAM)Network: Broadband Internet connection
- Storage: 12 GB available space
[ 6085 ]
[ 3241 ]