"Radical ethics" for single-issue factions and internal politics.

  • 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.
Testing out fanatic pops as part of the political landscape + my tweaked ethics chances.

1606701425375.png

Mmmm Look at that vibrant political landscape - and the factions are constantly in flux too! (probably too much in flux tbf).
I really like the business of this screen (and the horror you're facing pleasing/working with all those factions when you pull through with the boni and mali associated with respective factions and how you treat them).

I noticed that the two upper factions have a Space infront of their name, not aligning with the other Faction names. Is this due to you fiddling with the files/not adjusted? Just a minor thing.
Ethos bar was never designed for 16 Icons. The upscaled UI mod looks great with it, though and no UIX incompatibilites with how i'm handling the files. (running 100% vanilla - apart from my own mod just loaded this up for a quick peek).
1606702187109.png
1606702367605.png
1606702775563.png
I like the modified UI here in the first screenshot, showing which Pops are moderate or of a fanatic Ethic (and seeing their pull). I also disagree with the Vanilla restriction that a Pop can only have one Ethic assigned, is this something you can modify? Also, I don't recall seeing this in vanilla, but I like that Pops can have way more than two attractions to a Faction in the second screenshot. That makes the political land scape more dynamic by Pops swinging in directions depending on what you're doing in your empire (Policies, Rights, etc).
If anyone ever says the pop attraction system isnt opaque to players not in the know, just show em these screenshots lol.
1606700726909.png
1606700737689.png
Not exactly sure what you mean (maybe because I am not a native English speaker). Do you mean it's not apparent what Ethics a Pop might be attracted to? If so, I agree. You have to select individual Pops to see what they are attracted to. I'd like a per-planet visual breakdown of which Pops want which ethics (AfAIK the Ethic symbols only tell you how many % on this planet is Ethic X or Y.

Awesome progress!
 
  • 2Like
Reactions:
I really like the business of this screen (and the horror you're facing pleasing/working with all those factions when you pull through with the boni and mali associated with respective factions and how you treat them).

I noticed that the two upper factions have a Space infront of their name, not aligning with the other Faction names. Is this due to you fiddling with the files/not adjusted? Just a minor thing.
You understand my pain xD and Well spotted! Yes, I'm still thinking about those two factions, so that's because of something I posted earlier.

That space you see comes from the red lines here, This is because I've not set those two factions up properly yet (they're just auto spawning, they need to be event-called) and the parameter: planet/sector.name is something provided by an event.
1606733966755.png

So the way those two factions are meant to work:
  • an event fires (e.g. 1st of june) and it randomly[or due to some conditions ive made up] picks a non-core sector (or system) in your empire.
  • it then takes the name of that object (e.g. "Alpha Centauri", or "Rim-Sector"), saves that name (in RAM) and uses it when creating a faction,
  • The faction would be called the <"Rim-Sector" "Independence" Alliance"> for example, but without that proper set-up we have <"" "Independence" Alliance">, causing the blank.
I like the modified UI here in the first screenshot, showing which Pops are moderate or of a fanatic Ethic (and seeing their pull). I also disagree with the Vanilla restriction that a Pop can only have one Ethic assigned, is this something you can modify?
This used to be how pops work. E.g. See this very old screenshot as an example, the pop holds 2 ethics.
1606734524810.png

At some point this was changed to only hold 1 ethic. Unfortunately I dont think its moddable.
I think it is a setting not exposed to script / is in the compiled codebase. Pops extend out of pops_api.dll a compiled file that nobody can get in to (compiled code is more performative and PDX can do much more with it than just via scripts).
It might be for the best, think of how complex the ethos calculation is (all those drift values) now multiply that by three(!), that's potentially a lot of CPU time.
Also, I don't recall seeing this in vanilla, but I like that Pops can have way more than two attractions to a Faction in the second screenshot. That makes the political land scape more dynamic by Pops swinging in directions depending on what you're doing in your empire (Policies, Rights, etc).
That's core functionality in vanilla, the reason you see so so many is because i've been tweaking stats to make pops consider more things (more tweaking needed).

Do you mean it's not apparent what Ethics a Pop might be attracted to? If so, I agree. You have to select individual Pops to see what they are attracted to. I'd like a per-planet visual breakdown of which Pops want which ethics (AfAIK the Ethic symbols only tell you how many % on this planet is Ethic X or Y.

Awesome progress!
Thank you, and yes, correct, its not very clear. Its a statistically weighted chance, I think.
1606735064022.png
(I dont think this is 100% right, but it feels, somewhat right from what ive seen).
So the pop will have a chance (at some point, e.g. once a month, once a year - this is set up in the defines variables) to change its ethics,
if it rolls a yes (to change ethics)
it then picks a new one based on weighted probability.
 
  • 3Like
Reactions:
an event fires (e.g. 1st of june) and it randomly[or due to some conditions ive made up] picks a non-core sector (or system) in your empire.
That makes sense. How is it determined which system/sector is associated with the new Faction? Is it solely dependend on Pops belonging to that Faction or is a random, non-core, sector/system chosen (if you can influence that)?

Edit: The answer is right there, but I leave it for transparency LOL.
At some point this was changed to only hold 1 ethic. Unfortunately I dont think its moddable.
I think it is a setting not exposed to script / is in the compiled codebase. Pops extend out of pops_api.dll a compiled file that nobody can get in to (compiled code is more performative and PDX can do much more with it than just via scripts).
It might be for the best, think of how complex the ethos calculation is (all those drift values) now multiply that by three(!), that's potentially a lot of CPU time.
Yeah I've read that Pops used to have more than one Ethic in the early versions of Stellaris.
I understand the concern for performance reasons. But it's a nice concept IMO and could contribute to an even more varied political land scape.
Perhaps that could be re-introduced now that performance has been improved. Save some here, give some there. But I am no expert on any of these fields so I might as well just be pipe-dreaming.
(I dont think this is 100% right, but it feels, somewhat right from what ive seen).
So the pop will have a chance (at some point, e.g. once a month, once a year - this is set up in the defines variables) to change its ethics,
if it rolls a yes (to change ethics)
it then picks a new one based on weighted probability.
I'd say it looks right.
Let's say we have one Fan Egalitarian Pop in an Fan Egal/Phile empire like the UNE like in the image a couple comments above: The Pop can only hold one Ethic.
Now solely based on the chances, this Pop could flick from Fan Egal to Xenophobe. Would that actually happen in-game or would that be an edge case (in case you haven't done much to promote Phobia, but the chance is there)? In this (possibly edge) case, I'd blame the ability to only have one Ethic at a time, and having at least two would be an improvement in this case.

But you gotta work with what you have. So based on that I'd say the way a Pop chooses his Ethic based on this graph/chance is fine.

I think the main issue is that it shouldn't feel artificial or unlogical (a phile Pop suddenly flipping phobe even though nothing happened except the regular pulse for a Pop to evaluate which Ethic it wants to belong to).

Maybe I am also just reading too much into the images and all those chances of changing Ethics only pop up later in the game when it's more likely to have other Ethics' influence in your empire.
 
That makes sense. How is it determined which system/sector is associated with the new Faction? Is it solely dependend on Pops belonging to that Faction or is a random, non-core, sector/system chosen (if you can influence that)?
I've not written the event yet so its not determined at all lol. But I plan to read over the old events (this was a mechanic in 1 -1.41) for reference. My first "Version 0.1" approach will be
  • Annual event
    • Triggers once every year.
    • rolls a 1-20, if it gets a 20, triggers selection event.
  • Start selection event
    • Count sectors,
    • if <2, abort
    • if = 2, pick non-core sector,
    • if >2 randomly pick any non-core sector.
  • Use to spawn independence faction and force pop-faction re-evaluation (triggers sub-event)
Later I'll want to replace that "randomly" with something else (not decided yet) either
  • Distance weight - whereby I calculate the jumps from the homeworld to the sector capital world (e.g. 10 jumps to Proxima Sector Capital, 30 jumps to Upsilon sector capital) and use that to perform a random weight selection (like how the pops above find their ethics).
    • Mathematically, this is the easiest, I think, though less ideal than the other two. And it is better for "robustness" (less errors) and less processing time/performance concerns.
  • Instability weight - This one might not actually be possible, maths operations are limited in stellaris, would need to test, but if I could take the average stability (sum up all stability / # colonies in a sector) and random-weight pick sectors with lower stability for independence movements.
  • Happiness weight - it is possible to poll all pops in a sector to see whose happy and whose not, taking the scaled average might be possible, in which case the least happy sector (from most unhappy pops) would be the most likely one to revolt.
These are all ideas and each one has flaws /possible technical limitations. So for now I just plan to focus on the slave faction as it's a lot simpler, by comparison.

Let's say we have one Fan Egalitarian Pop in an Fan Egal/Phile empire like the UNE like in the image a couple comments above: The Pop can only hold one Ethic.
Now solely based on the chances, this Pop could flick from Fan Egal to Xenophobe. Would that actually happen in-game or would that be an edge case (in case you haven't done much to promote Phobia, but the chance is there)? In this (possibly edge) case, I'd blame the ability to only have one Ethic at a time, and having at least two would be an improvement in this case.

But you gotta work with what you have. So based on that I'd say the way a Pop chooses his Ethic based on this graph/chance is fine.

I think the main issue is that it shouldn't feel artificial or unlogical (a phile Pop suddenly flipping phobe even though nothing happened except the regular pulse for a Pop to evaluate which Ethic it wants to belong to).
Ok lets look at the numbers i've got, to try and make a guess.

These are the defines changes i posted yesterday
1606737299387.png

Lets ignore some of the more complex limits (like upper and lower ethic thresholds, these define how far off from e.g. 30% spiritualism attraction the game is happy to be (e.g. +/-4% I think In this case)

The important thing for this is
  • POP_ETHOS_DIVERGENCE_INTERVAL = set to 180 days.
  • POP_ETHOS_DIVERGENCE_RATE_MULT = set to 35% chance.
  • POP_MIN_ETHIC_RELATIVE_ATTRACTION 0.05
    • (This is why you see so many more ethics being considered in the tooltip, I think, i've made pops more... "open minded" about ethics, I should probably raise this to 0.075 as it's a bit much, nobody considers 6+ political parties at once.)
    • To use my earlier graph example, lowering this figure "should" stretch out the graph to the right and make the pop factor more Xi ~ Xn segments.
This means a pop will make 2 attempts a year to change its ethics and it has a 1/3 chance of doing so.
Or, the probability (its time for maths) of changing its ethic
  • Once in a year = 54.5% = [(0.35^2)+(1-0.35)^2 x 100]
  • Twice in a year (it might change to something else, then change back) = (0.35)^2 = 12.25%
    • Dont @me on my maths, its just illustrative, this is all being done mentally lol.
1606738297826.png

So if we say its got a 54.5% chance to consider swapping once and a 22.5% chance to become Egalitarian,

The ultimate chance of it becoming egalitarian in 1 year should be 54.5%*22.5% = 12.2625% OR 0.0275625% if it becomes something else first then switches to egalitarianism (however in practice this will be lower, as there may be other factors, changing to authoritarianism on the first attempt would make it less likely to then switch to egalitarianism on the second attempt, for example).

There are other limits and weights at work too, and a many factors drift each month (if a war is declared militarism shoots up, reducing all other pulls as ΣX(i - N) ≡ 100% ) so this should give you some idea of how confusing this is to work with lol.
 
Last edited:
  • 2Like
Reactions:
Yeah. I guess the example I provided is indeed then just an edge case, which is fine, and it should feel logical and coherent most of the time.
Dont @me on my maths, its just illustrative, this is all being done mentally lol.
I am the last one to @you regarding math. I am glad someone is doing it. Suggestions backed up by math and working examples is much more likely to get recognized and implemented IMO.

I am usually not using mods (safe for an overhaul like Star Trek: New Horizons), but I'd definitely try out yours when you've got a working prototype.
In the end, I think we all benefit if PDX at least adopts some ideas and does improvements to Politics.
 
  • 1Haha
Reactions:
I don't know how you pretend to implement this, but I just know we NEED fanatic version of the factions we have today.

I find it crazy that for example, there is no difference between a moderate xenophobic or spiritualist faction and a fanatic one. Like, if you genocide xenos or find a bunch of non-belivers, your faction does not really care about the diffence of just kicking xenos of your borders or putting them into concentration camps.

This is the same for all factions. There is no nuance on them, all of them don't care if what you do is radical or not.
 
  • 4
Reactions:
I don't know how you pretend to implement this, but I just know we NEED fanatic version of the factions we have today.

I find it crazy that for example, there is no difference between a moderate xenophobic or spiritualist faction and a fanatic one. Like, if you genocide xenos or find a bunch of non-belivers, your faction does not really care about the diffence of just kicking xenos of your borders or putting them into concentration camps.

This is the same for all factions. There is no nuance on them, all of them don't care if what you do is radical or not.
With more Factions and Faction Ethics, there can also be more nuance, which I appreciate.
 
I don't know how you pretend to implement this, but I just know we NEED fanatic version of the factions we have today.

I find it crazy that for example, there is no difference between a moderate xenophobic or spiritualist faction and a fanatic one. Like, if you genocide xenos or find a bunch of non-belivers, your faction does not really care about the diffence of just kicking xenos of your borders or putting them into concentration camps.

This is the same for all factions. There is no nuance on them, all of them don't care if what you do is radical or not.
IDK about full fanatic factions, theres a few limitations on ethics drift that might make that hard, but I'm looking at more "bipartisan" factions or "single/narrow issue" parties - like communists (communalists) - and rebelling slaves - would be fanatic egalitarians,

Communalists in particular would push for labour reforms (abolishing indentured servitude, maybe voting/passing certain pro-worker GC resolutions), making their members happier, but as their support rises they get radical - demanding that you become a communalist parity (not all govts can) - so you either give in, or attempt to kill their leaders (assasination events) beat them up (police state etc) or potentially fight off a full communalist uprising. Vive la révolution.

Military Juntas (fanatic Militarist) might appear if you lose a war or are surrounded by pacifists or FPs they demand military government representation, GC military resolutions (if in the GC), 1 bunker on all worlds, refusing may trigger an attempted military Coup. etc

Nationalists might push for you to leave a federation, capitalist parties might push for you to join a trade federation/take commercial pacts etc. (must resist brexit jokes).

Lots of Ideas. And these actions (i showed off in an earlier post) all have an ai_weight = { base = X modifier = {#stuff } } field, so this can also be used to build up AI logic when certain factions appear.
People complain AIs dont leave federations - what if the Nationalist party appeared, and grew to 40% support? The AI might have a 40% weight to resign from the federation, tested 1x per year for example.

One Idea ive thought about is making a "purity party" that wants your empire to become a Fanatic purifier. Normally FPs cant be switched to in-game. But you could add an exclusion rule that says IF the Purity Party is elected in to power (not sure how i'd handle this for imperiums / dictatorships - maybe a special endorsement action?) you gain the option to become a Fanatic purifier mid-game - it'd be a Nazi-like party taking power, going from the fringes to mainstream - imagine the AI doing that too. That immediately makes things spicy.
 
Last edited:
  • 3Like
  • 1
Reactions:
Ive recently been playing around with an internal politics mod too, I wonder if ours could play off of each other in some way? I've been implementing a full election system for democracies, along with the requirement to form essentially coalition governments out of the factions running for election.


20201130163219_1.jpg
20201130163502_1.jpg


Obviously there is still a lot of work left to do yet, modding the UI can be a real pain.
 
  • 3Love
  • 1Like
  • 1
Reactions:
modding the UI can be a real pain.
I feel this deep in my soul.
I'm doing everything I can to stick to standard UI elements (It's how I realised that factions were so moddable, by inspecting the Actions sub-menu).

On compatibility: I assume youre somehow suppressing the default election code ...maybe by ripping it out of the authority and running a hidden 10 year timer to then injecting your own custom event window over the top? That's my initial gut idea for something like that.

I've had a few ideas about running an archaeology-style event chain as an election story "Candidate has scandal, "candidate drops out" "attraction to party X grows" but it's an incredibly unstable way of doing things and isnt scalable, so i'm avoiding ripping out elections for now. If your method can build off factions - any factions - in theory the two mods would be compatible.
 
  • 4
  • 1Like
Reactions:
On compatibility: I assume youre somehow suppressing the default election code ...maybe by ripping it out of the authority and running a hidden 10 year timer to then injecting your own custom event window over the top? That's my initial gut idea for something like that.

Thats exactly it, default elections removed under the hood and then my own election system over the top of it. Right now the mod is limited to searching for factions that conform to the 'is_pop_faction_type' of the basic eight faction types, i'll take a look at making it a little more agnostic though.

I think your ideas are great, and im looking forward to seeing what you can accomplish with this.
 
  • 3
  • 1Like
Reactions:
Thats exactly it, default elections removed under the hood and then my own election system over the top of it. Right now the mod is limited to searching for factions that conform to the 'is_pop_faction_type' of the basic eight faction types, i'll take a look at making it a little more agnostic though.

I think your ideas are great, and im looking forward to seeing what you can accomplish with this.
Nice, I assume you know about them, but if not, this might help you with debugging
1606780984973.png


factions.showallfactions somehow indexes and tracks faction IDs, if you could tap in to that and use it for scopes (i'm not sure how though) it'd let you index everything - theoretically.
1606781143633.png
 
  • 2
  • 1Like
Reactions:
Have finished up the demands & English (only doing English) localisation for the Emancipationist faction.
Tried to capture a mix of PDX's tone and something you might see in a UN/Human rights pamphlet.
Here's some of the tooltips:
1606788123566.png

1606794731554.png

Starting on the actions next, considering how I want to set it up exactly, still.
  • Ban slavery completely
    • All slave pops, inc. indentured servitude, made residents i'm intending this to be the "nuclear" option you consider last.
  • Emancipate[set resident] all of slave_type,
    • Does not change the slavery policy itself. Slavery will still be legal.
    • One emancipation for Chattel, Livestock, B-Thralls, Domestic servants
      • (not indentured servants - they'll come under the Communist faction, slaves are apathetic to them).
  • Assassinate leader - prevents another leader from taking their place for 5 years, reduces attraction
    • (civic? or just req. Fanatic [Authoritarian/mil/xenophobe] as a governing ethic?)
    • Leaderless parties cannot stand in democratic elections, either.
  • Police raids - reduces pop-attraction to the faction by X% for 5 years, via a hidden flag system (req. police state civic)
  • Mafia terrorise slaves - same as above but for criminal megacorps.
  • "Oppress slaves" (generic) - makes all slave pops less happy (national modifier?) reduces attraction but may trigger uprising events [???]
Then i'll need to look at events, off the top of my head:
  1. If an Emancipation party wins a democratic election, issue an ultimatum to ban slavery within 6 months (if player/AI doesnt do it themselves).
    • Refusing to ban slavery adds to a hidden empire counter building up to a civil war. Counter spawns via event with the faction and dies via event with the faction.
    • Emancipation parties will never be represented by governors or rulers, so they should never come to power in Imperiums, Dictatorships or Oligarchy/MCs.
    • Add/force an "Emancipation" mandate for this party's leader.
  2. Random events that are tied to party support. as well as a counter system to weave this all in to a civil war "counter"
    • Benign at first
      • Tier 1: hunger strikes/"go-slow" (reduced output, some slaves suicide) >
      • Tier 2: Passive resistance (Slave processing centres blown up, slaves flee to other nations) >
      • Tier 3: Slave kills master [RNG(Masters Panic > Riots / Masters keep cool > slave pops executed), Governor Assassinated etc >
      • Tier 4: Police/Planetary defence force and Slaves fight (planetary conflict), Slaves stockpile arms, security agents report that slaves buying ships from criminal factions, Megacorps dealing under the table & black market
        • [could boost slave FP if a neighbouring MC exists, or if a Crime syndicate MC exists anywhere in the galaxy]
      • Tier 5.1: Emancipation party issues one final ultimatum costing (scaled?) influence.
      • Tier 5.2a: If accepted, within days slavery is abolished and the slave party dissolves (you also get flags about pissed off former slave masters - another faction i'm considering down the line)
      • Tier 5.2b: If refused, within days Servile war for Emancipation declared. (look in to copying the way machine uprisings work + tweak)
  3. Each Tier (1-5) corresponds to a value on the counter, events going one way or the other add or subtract from the counter, reflecting the tensions simmering up or down. An empty empire modifier should update so you can track this (Slave Unrest - Tier X) in the modifiers box of the government window. [also a popup each time tier goes up/down]
    • e.g. if C = 4 after refusing democratic emancipation demand, and a slave event fires, killing a governor, this could increase C to 11 (tier 2, with 10 points a tier, some events add more than others)
    • Might also make it only count up for simplicity (if you ever want the movement to end you either fight them off, or give in to demands)
    • Winning a Servile war as the masters adds a flag preventing an emancipation faction from reforming for ... 25 years.
Still need to look into
  • Making a dummy custom leader ("VIP") rather than have the game use scientists for slave leaders.
  • Further reading on pop attraction / faction attraction modifiers.

Now it's all very clear cut and straight forward when I lay it out like that... but I foresee a lot of headaches getting this all working lol.
 
Last edited:
  • 4Like
  • 1Love
Reactions:
This is awesome. @Pancakelord you have just gained a follower. I look forward to trying out your mod.

Plus, huge kudos for taking the time to walk us through your trials. Super helpful to other modders.

May I request an option to turn these faction changes off for the AI? This way the player can enjoy all this content but not have to pay the price of performance cost for AI or the AI doing "random" things that is very hard for the player to understand.
 
Thanks I didn't know you could even follow people on the forums lol.
May I request an option to turn these faction changes off for the AI? This way the player can enjoy all this content but not have to pay the price of performance cost for AI or the AI doing "random" things that is very hard for the player to understand.
With how I'm writing it that isn't really possible. Also, adding more checks (they'd need to exist on many levels) would probably degrade performance more than just having it all enabled tbh - though I cant see the hit from this being too substantial; events are polled at specific windows, not run continuously.
 
Last edited:
  • 1Like
  • 1
Reactions:
1606963442244.png

Just a small peek at the emancipation function fully written up. Hitting the Gavel button for emancipate fires this event popup, letting you confirm or abort.
I still need to proof it and refine the wording so it sounds better in more situations (I use several dynamic phrases) but thats mostly done.
On the influence cost, it vanishes (and the orange text gets hidden/shown) depending on if you have the ability to alter your slavery policy or not:
1606963644489.png

So if you can normally set slavery to disabled, going through this menu would be free.
But if you cannot currently set slavery to disabled (as in the above example) it costs you influence to bypass that (also resets the timer and adds a few flags to piss off other factions).
  • The Former Slavers faction (they were on my little faction wheel back in the OP) will spawn whenever slavery is disbanded, lingering for a few decades then disbanding if they don't grow in support.
  • In theory they could be quite a nuisance, leading to former masters [I plan for Fanatic authoritarians and Fan xenophobe pops to have a high attraction, a mid attraction for regular xenophobes/authoritarians and a low attraction for all non-worker pops that did not last have their citizenship set to slavery [i.e. aren't former slaves]] to have a chance of rising up and declaring independence to re-enslave their old property. Placeholder for now, something to do down-the-line when I have time.
On the UI - whilst the mod (so far) works fine with the Vanilla one, I'll make it a recommendation to use something like the UI scaling mod, the Vanilla UI just isnt that flexible by comparison.

Now that i've got one action (the buttons from "Manage Faction") fully figured out, I have a template for the other faction actions, so progress should be quicker - whenever I next have free time in the week.
 
Last edited:
  • 3Like
  • 3Love
Reactions:
Love seeing this progress.
Sorry, nothing to contribute.

BUT, given it's pretty early, did you observe the AI in how they handle it?

I also can't help but wonder how dynamic this could get if the mentioned shared systems in that other thread were to return.
 
BUT, given it's pretty early, did you observe the AI in how they handle it?
Right now they don't lol, all AI fields are set to a weight of 0 (never use). For now I'm just building this all out so it works, later I'll go back and add AI_weights (for chances to trigger a faction activity, like suppression or assassination) and AI_chance values (for choices in events)

AI logic is entirely built out of base chances and conditionals that make it picking one option over the other more or less likely (e.g. the AI will always try and pick something unless its an exterminator, then it will never pick it) So in my above event I could attach a chance to the AI picking an option being 100% (if it has enough influence otherwise abort) as the actual decision making is done a step "back" a the factional level where the AI decides what action it ought to take by random-weight picking from the selection of valid actions I've given it.

E.g. if the AI doesn't have police state it wont be able to pick "Police Raids", but if it does have it, that choice could have 2-3x the weight on it (so 2-3x the relative chance of getting chosen) vs say assassination - whilst at the same time assassination could have a higher chance of being chosen if they also have cutthroat politics (and then the game re-scales all factors to equate to 100% and picks according to the proportional chance)... if that all makes sense?

Or think of it like randomly selecting a sector on a pie chart, the fatter the sector, the more chance you have of landing on it, and doing the action associated therein (which may itself lead to another sector with more choices). That is literally all the AI is in Stellaris - a decision tree (tbf that's all it is in most applications too).
1606995371909.png
1606995520390.png
 

Attachments

  • 1606994971157.png
    1606994971157.png
    26 KB · Views: 0
  • 3Like
Reactions: