Parallel purging - a solution to endless purge times & Crisis passivity?

  • 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.
Exactly, that’s why I used it as a set up. Maybe I should rephrase; I think the display of his pops are purged is fine, other than blocking out other ways pops can decline when a pop is being purged. However, when a purge is complete I think that in addition to that 1 pop a portion of all the pops on that planet being purged should also die.

In the calculation I did, I had it set so that a planet under the control of a crisis faction would still have 4 pops per year purged in addition to 1/5 (give or take) of the planet’s current pops at the end of a year. This lead to about an 8 year total lifespan (at least for planets with 80 and 200 pops) for planets under control of a crisis, with proportionally low pop numbers near the end.

However, I think that giving a similar rate for “standard” purging may be a little bit high and suggest going with less than a fifth of the purging pops instead.
 
Exactly, that’s why I used it as a set up. Maybe I should rephrase; I think the display of his pops are purged is fine, other than blocking out other ways pops can decline when a pop is being purged. However, when a purge is complete I think that in addition to that 1 pop a portion of all the pops on that planet being purged should also die.

In the calculation I did, I had it set so that a planet under the control of a crisis faction would still have 4 pops per year purged in addition to 1/5 (give or take) of the planet’s current pops at the end of a year. This lead to about an 8 year total lifespan (at least for planets with 80 and 200 pops) for planets under control of a crisis, with proportionally low pop numbers near the end.

However, I think that giving a similar rate for “standard” purging may be a little bit high and suggest going with less than a fifth of the purging pops instead.

I see where you are coming from - I'm actually adapting the script for assimilation right now to do something similar just as a rough test (have it cycle through nations biannually, looking for pops with the Purge_normal state and kill X number of them, currently X is an integer, but I'd need to see if I can have it substitute X for a fraction of the total purge_normal population, rounded up -e.g. 25%, or 10% for true decimation lol) based on an earlier suggestion.

One thing to keep in mind is that Invasions effectively "add/frontload" time to purging (for crisis and total wars with FPs etc) and some invasions can drag on for months or years (e.g. vs Awakened Empires).

A shorter total time to purge (TTP) may also encourage more players to better-defend their colonies with bunkers/shield arrays/resilient traits/defence army generals (when was the last time anyone ever used one?)
And this would increase the value of maintaining planetary defence forces - they would fight invaders for longer, extending TTP, and give players more time to send a siege-breaking fleet.
 
Wouldn't be enough. That still gives you 6 years to save an 80-pop world, and a decade and a half for a 200-pop cityworld.

But that's a fun part, no? Trying to save a world from being purged by the Scourge or Contingency. The Unbidden mechanic os simple vanishing the world is too boring, dunno why you want another copy of it.

Yeah, the problem with pumping up decline speed is that, ultimately, it can only ever get as high as "1 POP per month", which is still WAY too slow and leaves all the exploits regarding purge worlds intact. The only way to FIX purge worlds for good is going to be to detach purging from decline somehow so that it can happen to multiple POPs per world.

Ideally, purged POPs should be producing resources upon death instead of as a job, too. Hell, even that change would go a long way to discouraging purge worlds; it'd encourage people to spread out POPs as far as possible so they got the resources quicker.

Just fixing purge worlds doesn't solve the problems with Crisis purging, though, unfortunately.

If you give resources only when the Pop dies, the entire 'purge worlds' problem will vanish, because then you want to purge the pops as fast as possible.

Using the decline slot/mechanic for purge should not change.
 
But that's a fun part, no? Trying to save a world from being purged by the Scourge or Contingency.
Yes, and making it take that long removes any and all sense of urgency.
 
Whilst I agree a reexamination of the overall pop system would be a "best case" scenario, it would also touch on many parts of the game, whilst a purge rework is actually quite easy to do.

I have had a look at repurposing the assimilation script into a purge script and it works - though ive set it up to run biannually (instead of annually) and it only kills 5 pops per pass [just playing around with extermination for now "Purge_normal"], currently.
Trying to find a way to apply a relative count (I don't normally script in whatever paradox uses, need to see if we can do something like (0.3*[#Pops set to Extermination purge in empire] & then kill off all remaining pops when they number 3 or less, to stop weird % effects leaving one pop around for years)

If i could get that working, I've modelled what the Total time to purge would be as an example for each extermination type.

9EKW4jG.png

Extermination would take ~7 years to wipe out 500 pops, for example.
Whilst it would only take about 2-3 years to wipe out a population of 12-20 (typical size of a primitive planet's population).

Probably wouldnt need to touch Neutering or Displacement, but included them for completeness.

I used their current modifiers on the wiki as % (though scaled back extermination slightly) So 30% of a population would be killed every 6 months in the case of extermination.

The only other question, assuming i can get this % cull running, is performance. It would be running a bunch of pop culls every 6 months (jan and june, not sure what days the game runs biannual pulses on). This may cause small lag spikes around those two dates if there are a lot of pops to process. This might be why the decline system was adopted in the end, not sure exactly how it works, but its probably not that computationally heavy.
 
Last edited:
Just make purging a job. Pops working a purging job produce whatever resource the process generates and are killed by the end of the month. If you have n purging jobs you can purge n pops in parallel. pops in excess of that are not purged and do not produce resources.
Number of available purging jobs can then depend on a number of different factors: Policies, unrest, edicts, additional ones per stronghold on the planet, being a crisis...
 
Just make purging a job. Pops working a purging job produce whatever resource the process generates and are killed by the end of the month. If you have n purging jobs you can purge n pops in parallel. pops in excess of that are not purged and do not produce resources.
Number of available purging jobs can then depend on a number of different factors: Policies, unrest, edicts, additional ones per stronghold on the planet, being a crisis...
Hey that's not so bad an idea. It also solves the problem of 200 pops worth of city-world starting to melt just because there's a single Devouring Swarm pop calling the shots.
 
Just make purging a job. Pops working a purging job produce whatever resource the process generates and are killed by the end of the month. If you have n purging jobs you can purge n pops in parallel. pops in excess of that are not purged and do not produce resources.
Number of available purging jobs can then depend on a number of different factors: Policies, unrest, edicts, additional ones per stronghold on the planet, being a crisis...

There may be something to that.. i'm trying to find a way right now to fetch how many pops are listed as type = purge_normal (extermination) in an empire, and unless i've overlooked something somewhere... there isn't actually an easy way to do that? (short of an incremental count - which would be excessive - not sure yet if the "num_pops" condition can be combined with a purge check).
This might do it, buried in the wiki
Code:
count_owned_pops = {
    limit = { <triggers> } #do purge check here
    count = all
}

Also doing calculations in "PDX script", as ive taken to calling it, is disgustingly obtuse.

If it is possible to attach a Kill_pop command to a job, then at the end of each month that would kill all pops in the purge job (right now the game has purge jobs - theyre buried in the undesirables stratum - but they just attach the decline modifier) after 1 month. But if you make it roll a number beforehand to kill or not kill, you'd effectively kill a % of them per month.

Edit: update, i tried inserting a kill command into the foundry job on a vanilla game to see what happens - nothing happens. Unless you need to implement things in a special way for jobs, they don't seem to respond to anything besides modifiers and checks on what kinds of pops can fill them.
Meaning, a pulsed event/script would be the way forwards for parallel purging - unless paradox steps in and overhauls what jobs can do.
 
Last edited:
Hey that's not so bad an idea. It also solves the problem of 200 pops worth of city-world starting to melt just because there's a single Devouring Swarm pop calling the shots.
Maybe set purge jobs equal to number of pops on a planet plus the number of armies. At least for "voluntary" purges. For gestalts it would be faster, since they aren't being hunted, but withering because their connection to the hive is severed
 
Just make purging a job. Pops working a purging job produce whatever resource the process generates and are killed by the end of the month. If you have n purging jobs you can purge n pops in parallel. pops in excess of that are not purged and do not produce resources.
Number of available purging jobs can then depend on a number of different factors: Policies, unrest, edicts, additional ones per stronghold on the planet, being a crisis...
While this isn't a terrible idea, there is the problem that not all purge types take equally long to function.
 
While this isn't a terrible idea, there is the problem that not all purge types take equally long to function.
Generate extra jobs for different purge types. Start with purging the species with the fastest purging. This simulates that your purifiers prioritize exterminating the ugly Blorgs before they disassemble the soulless machines. And when they have finished that they continue displacing the humans.

The only problem I see is neutering. Because fluff wise neutered pops are supposed to be able to work normal jobs while being purged. I admit that I don't know how neutering works right now.
 
The only problem I see is neutering. Because fluff wise neutered pops are supposed to be able to work normal jobs while being purged. I admit that I don't know how neutering works right now.
Pre-2.2 they would continue working their tiles, producing goods. Now, they get chucked into the Undesirables strata, producing nothing (Except unity for Purifiers) and taking the longest to die off, at 20 months per pop!
 
Pre-2.2 they would continue working their tiles, producing goods. Now, they get chucked into the Undesirables strata, producing nothing (Except unity for Purifiers) and taking the longest to die off, at 20 months per pop!
Well, that is objectively worse. I guess you could give neutered pops a neutered trait instead of killing them. And a pop with the neutered trait should die each month with a pripability inversely proportional to it's normal life expectancy
 
You could also change crisis bombardment stance from indiscriminate to armageddon (afaik they all use indiscriminate), which would both speed up planet sieges and kill more pops even before crisis gets to purge them.

I edited 00_bombardment_stances, added end_game_crisis = yes in a trigger for armageddon stance and NOT = { end_game_crisis = yes } in triggers for selective and indiscriminate stances just in case.
 
You could also change crisis bombardment stance from indiscriminate to armageddon (afaik they all use indiscriminate), which would both speed up planet sieges and kill more pops even before crisis gets to purge them.
While we're at it, plug the RIDICULOUS loophole of being able to build armies on bombarded worlds, and to be able to do so faster than bombardment can kill them off!