Stellaris

Stellaris

Modify the Galaxy
Modify your Stellaris experience by checking out the many mods created and shared by the community, including tweaks to almost any aspect of the game.
Learn More
Geoff 23 Jan @ 7:48pm
Binary Pair Set
In case you're someone who might ever need something like this, I've gone through and created a comprehensive set of binary pairs for "star_classes" from available main sequence classes (B, A, F, G, K, M). For map icons, I've treated B, A and F as white, while G, K, and M are lumped together as "red" (since it's a very limited set of available map icons). Spawn odds and number of planets have been left consistent with the standard binary system defines that were already done by the devs.

#### b + b sc_binary_bb = { class = b_star icon = a_binary_star planet = { key = pc_b_star class = b_star } planet = { key = pc_b_star class = b_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### b + a sc_binary_ba = { class = b_star icon = a_binary_star planet = { key = pc_b_star class = b_star } planet = { key = pc_a_star class = a_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### b + f sc_binary_bf = { class = b_star icon = a_binary_star planet = { key = pc_b_star class = b_star } planet = { key = pc_f_star class = f_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### b + g sc_binary_bg = { class = b_star icon = b_binary_star planet = { key = pc_b_star class = b_star } planet = { key = pc_g_star class = g_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### b + k sc_binary_bk = { class = b_star icon = b_binary_star planet = { key = pc_b_star class = b_star } planet = { key = pc_k_star class = k_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### b + m sc_binary_bm = { class = b_star icon = b_binary_star planet = { key = pc_b_star class = b_star } planet = { key = pc_m_star class = m_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### a + a sc_binary_aa = { class = a_star icon = a_binary_star planet = { key = pc_a_star class = a_star } planet = { key = pc_a_star class = a_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### a + f sc_binary_af = { class = a_star icon = a_binary_star planet = { key = pc_a_star class = a_star } planet = { key = pc_f_star class = f_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### a + g sc_binary_ag = { class = a_star icon = b_binary_star planet = { key = pc_a_star class = a_star } planet = { key = pc_g_star class = g_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### a + k sc_binary_ak = { class = a_star icon = b_binary_star planet = { key = pc_a_star class = a_star } planet = { key = pc_k_star class = k_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### a + m sc_binary_am = { class = a_star icon = b_binary_star planet = { key = pc_a_star class = a_star } planet = { key = pc_m_star class = m_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### f + f sc_binary_ff = { class = f_star icon = a_binary_star planet = { key = pc_f_star class = f_star } planet = { key = pc_f_star class = f_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### f + g sc_binary_fg = { class = f_star icon = b_binary_star planet = { key = pc_f_star class = f_star } planet = { key = pc_g_star class = g_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### f + k sc_binary_fk = { class = f_star icon = b_binary_star planet = { key = pc_f_star class = f_star } planet = { key = pc_k_star class = k_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### f + m sc_binary_fm = { class = f_star icon = b_binary_star planet = { key = pc_f_star class = f_star } planet = { key = pc_m_star class = m_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### g + g sc_binary_gg = { class = g_star icon = d_binary_star planet = { key = pc_g_star class = g_star } planet = { key = pc_g_star class = g_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### g + k sc_binary_gm = { class = g_star icon = d_binary_star planet = { key = pc_g_star class = g_star } planet = { key = pc_k_star class = k_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### g + m sc_binary_gm = { class = g_star icon = d_binary_star planet = { key = pc_g_star class = g_star } planet = { key = pc_m_star class = m_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### k + k sc_binary_kk = { class = k_star icon = d_binary_star planet = { key = pc_k_star class = k_star } planet = { key = pc_k_star class = k_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### k + m sc_binary_km = { class = k_star icon = d_binary_star planet = { key = pc_k_star class = k_star } planet = { key = pc_m_star class = m_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### m + m sc_binary_mm = { class = m_star icon = d_binary_star planet = { key = pc_m_star class = m_star } planet = { key = pc_m_star class = m_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } #### b + m_giant #### b + t #### b + black_hole #### b + neutron_star #### b + pulsar #### b + toxoid_star #### a + m_giant #### a + t #### a + black_hole #### a + neutron_star #### a + pulsar #### a + toxoid_star #### f + m_giant #### f + t #### f + black_hole #### f + neutron_star #### f + pulsar #### f + toxoid_star #### g + m_giant #### g + t #### g + black_hole #### g + neutron_star #### g + pulsar #### g + toxoid_star #### k + m_giant #### k + t #### k + black_hole #### k + neutron_star #### k + pulsar #### k + toxoid_star #### m + m_giant #### m + t #### m + black_hole #### m + neutron_star #### m + pulsar #### m + toxoid_star

I've made it to save myself time, maybe someone else will appreciate the shortcut too. There's a little commentary list of all possible pairings between a main sequence and "degenerate" star, too if you want to get started filling one out. At this point I mostly just use init_effect = { change_pc = pc_black_hole } or whatever if I want such a pair. For whatever reason, that hasn't been as effective for me with main-sequence stars, which end up coming out as a sort of hybrid of the pre-defined class and my specification.
< >
Showing 1-7 of 7 comments
Geoff 28 Jan @ 2:26am 
So, some follow up here. To procedurally generate a whole galaxy of star subject to some level of physical laws, I found that defining all the systems was still too cumbersome, so I went with a "dummy system" instead. In that system, the star defines look like this - one "dummy" corresponding to each map icon. This saves some resources on the definitions side while preserving the most flexibility in system structure (photos at the bottom show the visual tradeoff though):
sc_dummy_trinary = { class = f_star icon = a_trinary_star planet = { key = pc_f_star class = f_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } sc_bright_dummy_binary = { class = f_star icon = a_binary_star planet = { key = pc_f_star class = f_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } sc_diverse_dummy_binary = { class = f_star icon = b_binary_star planet = { key = pc_f_star class = f_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } sc_big_dummy_binary = { class = f_star icon = c_binary_star planet = { key = pc_f_star class = f_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } sc_dim_dummy_binary = { class = g_star icon = d_binary_star planet = { key = pc_g_star class = g_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } } sc_little_dummy_binary = { class = f_star icon = e_binary_star planet = { key = pc_f_star class = f_star } spawn_odds = 5 num_planets = { min = 4 max = 10 } }

So, in ruby I've put together a little program that pumps out initializers. So, to show that in action, this is a snippet of code that maps any given pair of stars onto a "best fit" dummy system. It's a little messy but basically just compares the letter classification of the relevant stars to match it to a map icon (if anyone's interested, I'd gladly share the ruby code):
def stellarize_system_deets (current_system) results = "rl_standard_stars" if(current_system.system_starcount == 1) results = "sc_" + stellarize_luminosity_type(current_system.system_primary.luminosity_type, current_system.system_primary.spectral_class) elsif(current_system.system_starcount == 2) first_part = "sc_" second_part = stellarize_luminosity_type(current_system.system_primary.luminosity_type, current_system.system_primary.spectral_class).downcase third_part = stellarize_luminosity_type(current_system.system_secondary.luminosity_type, current_system.system_secondary.spectral_class).downcase if((second_part == "o") || (second_part == "b" ) || (second_part == "a") || (second_part == "f")) if((third_part == "o") || (third_part == "b") || (third_part == "a") || (third_part == "f")) results = first_part + "bright_dummy_binary" elsif((third_part == "g") || (third_part == "k") || (third_part == "m")) results = first_part + "diverse_dummy_binary" else results = first_part + "little_dummy_binary" end elsif((second_part == "g") || (second_part == "k") || (second_part == "m")) if((third_part == "g") || (third_part == "k") || (third_part == "m")) results = first_part + "dim_dummy_binary" else ###Not necessarily a red giant, but a red star significantly larger than its companion results = first_part + "little_dummy_binary" end else results = first_part + "little_dummy_binary" end #results = first_part + second_part + third_part ###(deprecated for now) #results = "rl_binary_stars" ###<----- USE THIS LINE IF YOU'RE NOT USING A COMPREHENSIVE BINARY SET) elsif(current_system.system_starcount == 3) first_part = "sc_trinary_" second_part = stellarize_luminosity_type(current_system.system_primary.luminosity_type, current_system.system_primary.spectral_class) third_part = stellarize_luminosity_type(current_system.system_secondary.luminosity_type, current_system.system_secondary.spectral_class) fourth_part = stellarize_luminosity_type(current_system.system_tertiary.luminosity_type, current_system.system_tertiary.spectral_class) #results = "rl_trinary_stars" ###<----- USE THIS LINE IF YOU'RE NOT USING A CUSTOM BINARY SET) results = "sc_dummy_trinary" end results = results.downcase puts results return results end

Then the relevant bit of the printout function that spits this out in a generator uses the "init_effect = { change_pc = pc_ " + whatever + "_star }" workaround.
if(this_system.system_starcount >= 2 ) secondary_printout = "\n" secondary_printout = secondary_printout + "\t\t\tplanet = {\n" secondary_printout = secondary_printout + "\t\t\t\tcount = 1" + "\n" secondary_printout = secondary_printout + "\t\t\t\tclass = star" + "\n" secondary_printout = secondary_printout + "\t\t\t\tsize = " + this_system.system_secondary.representation_size.to_s + "\n" secondary_printout = secondary_printout + "\t\t\t\torbit_distance = " + this_system.secondary_distance.to_s + "\n" secondary_printout = secondary_printout + "\t\t\t\torbit_angle = " + this_system.secondary_angle.to_s + "\n" secondary_printout = secondary_printout + "\t\t\t\tinit_effect = {" + "\n" secondary_printout = secondary_printout + "\t\t\t\t\tchange_pc = pc_" + stellarize_luminosity_type(this_system.system_secondary.luminosity_type, this_system.system_secondary.spectral_class).downcase + "_star\n" secondary_printout = secondary_printout + "\t\t\t\t}" + "\n" if(this_system.system_structure == "Distant Binary") || (this_system.system_structure == "Isoceles Trinary") || (this_system.system_structure == "Wanderer Trinary") secondary_printout = secondary_printout + "\t\t\t" + "\n" secondary_printout = secondary_printout + "\t\t\t\tchange_orbit = " + this_system.inner_limit.to_s + "\n"

Anyways, using the dummy system I've managed to spit out thousand-star sets that seem to be working ok.
Compact binary = https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3416221661

Distant Binary = https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3416221649

Compact Trinary (3 stars, 1 planetary disc) = https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3416221670

Isoceles Trinary (3 stars, 3 planetary discs) = https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3416221675

Wanderer Trinary (Binary stars (2 stars, 1 disc) captured a smaller transiting single (1 star, 1 disc): https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3416221688

Hyper Trinary (One large star has captured a transiting binary system (primary outweights both captured stars): https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=3416221696

I'm fond of the idea of "Binaries Squared" - two binary systems that have become gravitationally bound to one another. So I might add that, though there won't be much screen real estate left for planets if I try it. I'm not really sure that compact trinaries would be stable enough to last - that seems implausible to me. But they're certainly dramatic.
pipo.p 28 Jan @ 4:53am 
I have to compare this to other mods that add star classes (Real Space, Realistic Stars), to understand the novelty here.
Geoff 28 Jan @ 9:13am 
Originally posted by pipo.p:
I have to compare this to other mods that add star classes (Real Space, Realistic Stars), to understand the novelty here.
If you wanted to pump out a bunch of custom systems with any set on the fly, then you could just drop the definitions into the generator and away you'd go. Like right now I've got the frequency of binary systems set up close to 50%, which I understand to be closer to the accurate number for their prevalence in reality:
def random_starcount() rand_val = dieroll(3) case rand_val when 3 .. 10 starcount = 1 when 11 .. 15 starcount = 2 else starcount = 3 end return starcount puts "This system will have " + starcount.to_s + " stars." end

I don't treat pulsars, black holes, white dwarfs, etc. as separate systems to be picked, but rather assign an age to the system and run an analysis to see if it's still on the main sequence or not. So in that sense, you can generate more or fewer of them by pushing the age of the galaxy up or down.

I'm not trying to be novel so much as to share a shortcut I've figured out to accomplishing a task at scale. The thought is to try and share the parts that someone else might want to do too, and spare them the gruntwork of doing it themselves.
pipo.p 3 Feb @ 6:11am 
I now understand the interest of customizing galaxies by copying/pasting some parts of the scripts above in acustom galaxy generation script.

As for a better representation of the galaxy, I'm more mitigated because we never have access to a whole galaxy in-game, in all its (realistic) variety. We have access to a galaxy's network of hyperlanes and other FTL shortcuts. The rest depends on what sci-fi or pseudo-realistic assumptions the designer (or the modder) makes about the generation of natural wormholes and hyperlanes on the edge of a star's gravitational pit.
If, say, you decide that the emergence of hyperlanes is facilitated by a greater mass at the center of a system, then hypergiants should be over-represented, and dwarf stars should be under-represented. If you decide that some exotic effects facilitate the formation of hyperlanes, then exotic stars (neutron stars, pulsars, magnestars, black holes) should be over-represented. Etc.
Then, independently from having an artificailly diverse galaxy (for fun, I guess), an "artificial" balance pass has to be made so that star systems with suitable life conditions are somewhat still represented in this model of a "FTL-enabled" realistic galaxy.

This is why, I think, red dwarves and other cold dwarf stars are under-represented in vanilla Stellaris.
Last edited by pipo.p; 3 Feb @ 6:14am
Geoff 3 Feb @ 7:42pm 
Originally posted by pipo.p:
I now understand the interest of customizing galaxies by copying/pasting some parts of the scripts above in acustom galaxy generation script.
[...[
If, say, you decide that the emergence of hyperlanes is facilitated by a greater mass at the center of a system, then hypergiants should be over-represented, and dwarf stars should be under-represented. If you decide that some exotic effects facilitate the formation of hyperlanes, then exotic stars (neutron stars, pulsars, magnestars, black holes) should be over-represented. Etc.
Then, independently from having an artificailly diverse galaxy (for fun, I guess), an "artificial" balance pass has to be made so that star systems with suitable life conditions are somewhat still represented in this model of a "FTL-enabled" realistic galaxy.

This is why, I think, red dwarves and other cold dwarf stars are under-represented in vanilla Stellaris.

You're definitely right that red stars are under-represented. Though, a Milky-Way sized galaxy has a "true population" between 100 billion and 400 billion stars (the current level of precision by which we even know ourselves). So to arbitrarily take 1,000 stars from that number and use them for a map... you could easily just wave a hand and say it had something to do with whatever selection criterion you want to use.

Before I started up Stellaris, I'd developed a model that generates galaxies. It was that interest which led several people to point me in Stellaris' direction. It's a very coarse tool, but I love the concept that I could pump out a generated region and "explore" it through Stellaris. I'm thinking of linking anomaly creation to initializer creation when I do a run - so things like atmospheric composition and life forms present would be presentable within game. You'd survey, then the survey results would prompt an anomaly which, if completed, would provide complete specs for the world.

Already the galaxy generator can answer questions for me about things like star populations and elemental abundances at any given age. So if you enter in the Milky Way's specs (1 trillion solar masses, 13.6 billion years of age) you get a starcount like this:
#####GALACTIC DETAIL REPORT Name: Milky Way Age: 13.64 billion years Mass: 1000.0 billion solar masses X-Factor: 87.80 % likelihood life will emerge where possible. H-Factor: 162.86674726 quantity units of hydrogen are equivalent to 1.0 solar mass OVERVIEW OF STAR POPULATION CHARACTERISTICS Star Class Billions Main Sequence Total: 131.7923 Class O Stars 0.180487 Class B Stars 0.562650 Class A Stars 4.798161 Class F Stars 12.39587 Class G Stars 32.24434 Class K Stars 38.72663 Class M Stars 42.88423 Black Holes 9.085597 Neutron Stars 20.96024 Pulsar Stars 3.270151 White Dwarf Stars 46.30749 Active Red Giants 2.696825 Active Hypergiants 0.123459 Active Supergiants 0.493299 Active Subgiants 4.495655 Brown Dwarf Stars 95.04773 Dark Wanderers 42.78349

It also generates abundance rates of various elements depending on how old the galaxy is. Anything below the level of iron is generated through normal stellar fusion. Above that number, I smash neutron stars together. So like... in a young galaxy ... elements like carbon and oxygen would be in fairly short supply:
#####GALACTIC DETAIL REPORT Name: Yutania Age: 1.5 billion years Mass: 2287.670 billion solar masses X-Factor: 99.69 % likelihood life will emerge where possible. H-Factor: 51.678381456 quantity units of hydrogen are equivalent to 1.0 solar mass Carbon C 2.135816682197972 Nitrogen N 1.8313099416861316 Oxygen O 1.604200022088658 Neon Ne 1.2711367539258585 Silicon Si 0.9133401585614258

Meanwhile in an old galaxy ... say twice our own's age, the same elements would be available by well over an entire order of magnitude.
#####GALACTIC DETAIL REPORT Name: Trypso Age: 27.2 billion years Mass: 1032.013 billion solar masses X-Factor: 33.65 % likelihood life will emerge where possible. H-Factor: 64.094886387 quantity units of hydrogen are equivalent to 1.0 solar mass Carbon C 39.95285280917819 Nitrogen N 34.25671180397159 Oxygen O 30.008365368244533 Neon Ne 23.778042400939064 Silicon Si 17.085054735204917

As I've been tweaking it to produce stellaris-formatted output, I've been really enjoying the questions it can already answer for me. One world it generated the other day had an "upside-down ecosystem." It was hot - over 750 degrees, and had 8x the atmospheric pressure of Earth. This caused a lot of gaseous carbohydrates to bond with sodium and rise up into the lower atmosphere, where microbacteria would extract the hydrocarbons and secrete liquid sodium, that rained back onto the surface, dissolving a largely limestone crust of calcium oxide. It was sort of a reverse-rain cycle and just.... amazing to contemplate and not something I'd have come up with on my own.

I'm not quite sure how well it would ever integrate into the game itself. I find myself chopping out ever more and ever larger chunks of the game code. Fallen empires and marauders and prescripted systems are largely all gone now. Though once I get the export function fully working (already I can generate a 1,000 batch run without generating error log entries), I could theoretically batch-export any kind of galaxy I wanted. So if I wanted to select for exotic life (as developed through the model) I could do that. Or sentient life.

It's never really going to work as a "mod" though - first, playability isn't really high on my priority list, and I've locked myself onto a stable back version for development. There's no way I could ever hope to keep up with the release schedule of this game, and honestly very few of the features added since I picked the thing up seem worth playing. But it would be nice if the things I do discover along the way could be of some use to anyone else. And I think maybe modders (or aspiring modders) might be the most likely to appreciate it. And even if not... hehehe. Then at least I can use my own forum posts as a later reference ... like jotting astrophysics notes on the bathroom wall at your neighborhood bar.

EDIT: Made some light edits of the code outputs for legibility
Last edited by Geoff; 3 Feb @ 7:45pm
pipo.p 4 Feb @ 10:15am 
If it's a custom generation, you can always spawn the Sol system and simulate a Human exploration of your generated system, indeed. Increasing the hyperlane density and tweaking defines, should simulate an early llimited FTL in all directions.

Some mods also focus on playing inside limited star sectors or galactic quadrants. This could perhaps be interesting to adapt your mod, especially if you want a realistic star distribution in a radial direction (instead of sampling a whole, large galaxy). Moreover, if I understand well, most of the named visible stars are ridiculously close to Earth, whereas Stellaris use an important batch of them, alogside fantasy names, to name random stars throughout the galaxy (Real Space mod has a quite large "realistic" Sol sector, though).
Geoff 4 Feb @ 12:30pm 
Originally posted by pipo.p:
If it's a custom generation, you can always spawn the Sol system and simulate a Human exploration of your generated system, indeed. Increasing the hyperlane density and tweaking defines, should simulate an early llimited FTL in all directions.

Yeah, I'm leaning more towards the opposite direction. At this point I've figured out how to generate a map with no hyperlanes at all and how to use events to draw the hyperlanes. I've also pushed the starting tech tree up to "tier 10" and am working my way through a "primitive tech tree" that leads up to an ordinary level of game start.

What I'm thinking is that rather than go with the hyperlane network model, I'd make it so that jump drives are an early tech but limited to science ships and constructors. A constructor would then be able to build a hyper-relay which would no longer have its current effect, but would instead "open" a hyperlane tunnel to any other system with a relay within some given map range. If I'm right, that should transform the game so there's a long stretch of peaceful exploration available, and then gradually through development of a hyperlane network, empires would begin to emerge. Opening the hyperlane between two systems would allow the travel of warships. (Colonizers are a bit of an open question at this point).

Getting the AI to cooperate with my schemes has been a bit of a struggle. It's a frustrating blend of moddable incentives merged with an opaque set of "modules" that we don't have access to. But, hey... life's a journey not a destination.

I've also developed my own initializer for Sol - it has a double-sized Earth (I want invasions of species homeworlds to be very very difficult, so at least for now I've got them set to size 40 and nearly every pop spawns defensive armies). It's added Pluto as a planet, not because I think it was wronged (I kinda think its demotion was warranted), but just cuz we have so much rich data. I also made some tweaks like thickening the oort cloud, giving Mars some asteroid moons, stuff like that. Mostly I was just using it as an exercise to get the hang of system-drawing - max dimensions, max number of celestial objects you can draw before their orbits start to vanish, stuff like that. Cutting the planet sizes back in half would generally set it to something more like the standard Stellaris configuration:
new_humanoid_one = { name = name_homesystem_humanoid_one usage = misc_system_init usage_odds = @refactored_spawnchance max_instances = 1 class = sc_g asteroid_belt = { type = rocky_asteroid_belt radius = 155 } asteroid_belt = { type = rocky_asteroid_belt radius = 160 } asteroid_belt = { type = rocky_asteroid_belt radius = 165 } asteroid_belt = { type = icy_asteroid_belt radius = 320 } asteroid_belt = { type = icy_asteroid_belt radius = 330 } asteroid_belt = { type = icy_asteroid_belt radius = 340 } asteroid_belt = { type = icy_asteroid_belt radius = 350 } planet = { count = 1 class = star orbit_distance = 0 orbit_angle = 1 size = 60 has_ring = no } planet = { count = 1 name = "Mercury" class = pc_molten orbit_distance = 60 ###Total: 40 orbit_angle = { min = 90 max = 270 } size = 20 has_ring = no } planet = { count = 1 name = "Venus" class = pc_toxic orbit_distance = 20 ###Total: 65 orbit_angle = { min = 90 max = 270 } size = 34 has_ring = no } planet = { name = name_homeworld_humanoid_one count = 1 name = "Earth" class = pc_continental orbit_distance = 20 ###Total: 90 orbit_angle = { min = 90 max = 270 } size = 40 has_ring = no entity = "continental_planet_earth_entity" init_effect = { spawn_humanoid_one = yes } moon = { count = 1 name = "Luna" class = "pc_barren_cold" orbit_distance = 24 orbit_angle = { min = 90 max = 270 } has_ring = no size = 10 entity = "cold_barren_planet_luna_entity" } } planet = { count = 1 name = "Mars" class = pc_barren orbit_distance = 20 ###Total: 115 orbit_angle = 60 size = 26 has_ring = no entity = "barren_planet_mars_entity" init_effect = { add_modifier = { modifier = "terraforming_candidate" days = -1 } } moon = { count = 1 name = "Phobos" class = pc_asteroid orbit_distance = 15 orbit_angle = { min = 90 max = 270 } has_ring = no size = 1 } moon = { count = 1 name = "Deimos" class = pc_asteroid orbit_distance = 10 orbit_angle = { min = 90 max = 270 } has_ring = no size = 1 } } planet = { count = 1 name = "Vesta" class = "pc_asteroid" orbit_distance = 40 ###Total: 145 orbit_angle = { min = 45 max = 135 } size = 5 has_ring = no } planet = { count = 1 name = "Juno" class = "pc_asteroid" orbit_distance = 0 orbit_angle = { min = 45 max = 135 } size = 5 has_ring = no } planet = { count = 1 name = "Pallas" class = "pc_asteroid" orbit_distance = 0 orbit_angle = { min = 45 max = 135 } size = 5 has_ring = no } planet = { count = 1 name = "Ceres" class = pc_shattered orbit_distance = 0 orbit_angle = { min = 45 max = 135 } size = 5 has_ring = no } planet = { count = 1 name = "Jupiter" class = "pc_gas_giant" orbit_distance = 60 ###Total: 185 orbit_angle = { min = 90 max = 270 } size = 70 has_ring = no entity = "gas_giant_jupiter_entity" moon = { count = 1 name = "Io" class = pc_molten size = 6 orbit_distance = 32 orbit_angle = { min = 90 max = 270 } has_ring = no } moon = { count = 1 name = "Europa" class = pc_frozen size = 6 orbit_distance = 2.5 orbit_angle = { min = 90 max = 270 } has_ring = no } moon = { count = 1 name = "Ganymede" class = pc_frozen size = 9 orbit_distance = 2.5 orbit_angle = { min = 90 max = 270 } has_ring = no } moon = { count = 1 name = "Callisto" class = pc_frozen size = 7 orbit_distance = 2.5 orbit_angle = { min = 90 max = 270 } has_ring = no } } planet = { count = 1 name = "Saturn" class = "pc_gas_giant" orbit_distance = 20 ###Total: 210 orbit_angle = 180 size = 60 has_ring = yes entity = "gas_giant_05_entity" moon = { count = 1 name = "Enceladus" class = pc_frozen orbit_distance = 38 orbit_angle = { min = 90 max = 270 } has_ring = no size = 4 } moon = { count = 1 name = "Rhea" class = pc_frozen orbit_distance = 5 orbit_angle = { min = 90 max = 270 } has_ring = no size = 6 } moon = { count = 1 name = "Titan" class = pc_toxic orbit_distance = 4 size = 8 orbit_angle = { min = 90 max = 270 } has_ring = no } moon = { count = 1 name = "Iapetus" class = pc_barren_cold orbit_distance = 3 orbit_angle = { min = 90 max = 270 } has_ring = no size = 5 } } planet = { count = 1 name = "Uranus" class = "pc_gas_giant" orbit_distance = 20 ###Total: 235 orbit_angle = 270 size = 40 has_ring = no entity = "gas_giant_03_entity" moon = { count = 1 name = "Ariel" class = pc_barren orbit_distance = 32 orbit_angle = { min = 90 max = 270 } size = 3 } moon = { count = 1 class = pc_barren name = "Umbriel" orbit_distance = 4 orbit_angle = { min = 90 max = 270 } size = 4 } moon = { count = 1 name = "Titania" class = pc_barren_cold orbit_distance = 5 orbit_angle = { min = 90 max = 270 } size = 6 } moon = { count = 1 name = "Oberon" class = pc_barren_cold orbit_distance = 7 orbit_angle = { min = 90 max = 270 } size = 5 } } planet = { count = 1 name = "Neptune" class = "pc_gas_giant" orbit_distance = 20 ###Total: 26 orbit_angle = 180 size = 40 has_ring = no entity = "gas_giant_02_entity" change_orbit = 4 moon = { count = 1 name = "Triton" class = "pc_frozen" size = 6 orbit_distance = 14 orbit_angle = { min = 90 max = 270 } has_ring = no } moon = { count = 1 name = "Nereid" class = "pc_frozen" size = 4 orbit_distance = 5 orbit_angle = { min = 90 max = 270 } } moon = { name = "Halimede" count = 1 class = pc_ice_asteroid size = 1 orbit_distance = 4 orbit_angle = { min = 90 max = 270 } } moon = { name = "Neso" count = 1 class = pc_ice_asteroid size = 1 orbit_distance = 3 orbit_angle = { min = 90 max = 270 } } } planet = { name = "Pluto" class = pc_frozen orbit_distance = 15 ###Total: 300 orbit_angle = 225 size = 12 moon = { name = "Charon" class = pc_ice_asteroid orbit_distance = 5 orbit_angle = { min = 90 max = 270 } size = 1 } } planet = { name = "Haumea" class = "pc_asteroid" orbit_distance = 30 ###Total: 330 orbit_angle = { min = 45 max = 135 } size = 5 has_ring = no } planet = { name = "Makemake" class = "pc_ice_asteroid" orbit_distance = 0 orbit_angle = { min = 45 max = 135 } size = 5 has_ring = no } planet = { name = "Quaoar" class = "pc_ice_asteroid" orbit_distance = 0 orbit_angle = { min = 45 max = 135 } size = 5 has_ring = no } planet = { name = "Varuna" class = "pc_ice_asteroid" orbit_distance = 0 orbit_angle = { min = 45 max = 135 } size = 5 has_ring = no } }
< >
Showing 1-7 of 7 comments
Per page: 1530 50