Mechanics Behind Monster Evolution?

Dose anyone know the details of how monster evolution works in detail?

A little. But I learned by tinkering, not code diving per se.

First, evolution is determined by a few factors:

-Season Length
-‘Half-life’
-‘Evolution path/probability’
-Cost

Season Length: The longer the seasons, the slower evolution appears to be. Or at least thats the theory Im running with atm.
I do know that 14 days is approximately ‘7’ half life. Or long enough to allow critter with 7-14 half lives and no limitations to appear.

Half Life: The number set for each individual critter that determines when half of them should try to update, or when they try to update half the time. Makes sense.
This number is a multiplier, so far as I can tell. Like I said, 7 appears to be a season or so. 14 two seasons.

Evolution path: Critters can interestingly enough fail to update, or upgrade into themselves, slowing down the total evolution time since most evos have a ‘cost multiplier’ similar to how spawns work.

Cost Multiplier: The evolution groups can have cost multipliers that eat up the pool of resources used to spawn monsters into the game. This will prevent some evolutions from happening until later, when more points are available.

Theres probably a lot involved in the process, but you should give it your own go or at the least not ask for alltheinfos and instead select specific things you want.

So what dose the evolution scaling do exactly and how dose it affect the process

The biggest problem with monster evolution is that normal zombies can mutate into the most powerful types in just one step. That means the evolution time is largely pointless, or at least it doesn’t allow any gentle gradual shift. I don’t want to see hulks or shocker brutes in the first week or the second season, but that’s currently unavoidable without editing the zombie mutation paths. So IMO what we lack there is a ladder with more steps between a normal zombie and a hulk, for example. I think it’d give the game more longevity if certain monster types would first appear only after one year into the game by default.

Then we also have zombie masters in the mix, who can upgrade other zombies, speeding things up, potentially operating within your Reality Bubble but outside your view, depending how close to a city you decide to linger.

So, in short, you can raise the monster evolution setting number to high heavens but you still might see shocker brutes or hulks here and there from the start. But, that being said, it doesn’t mean the setting is completely pointless. It definitely has an effect. Personally I edit the setting only in multiples of 5. I can’t imagine what one might see with values like 0.1 or 0.2. You can also gawk at the data in data\json\monstergroups.json

Wait, you mean it doesn’t go zombie > tough > brute > hulk?

Never has.

zambies go into EVERYTHING. Well, they dont turn into technicians or cops or dog, but everything else.
Toughies dont upgrade at all in vanilla, nor can they be ugraded into.
brute dont either, although they can be evolved into.
Hulk? iirc there is a chance for them to be evolved into.

No, its defined by zombie_upgrade in vanilla. fatties get their own group to spawn into, and so do children and grabbers. Other than that I dont even recall a linear upgrade path. Even within my own mod, their isnt a linear path of more than 2 mobs before it branches.

A flowchart of the zombie mutations would be super. :expressionless:

That would be awesome, but can someone answer me on how scaling affects moster evolution

It doesnt

Really? then why are you able to alter it in the settings?

Because some people want more or less monsters, items, or npcs?

There might be an evolutionscaling factor that YOU should play with, its probably a multiplicative adjuster. Wasnt it a negative value where higher vlaues meant slower changes?

That’s what i was referring to sorry should have added context. Yes that is how it works unless it is zero then it is off. But what I want to know is how dose evo scaling affect the game in detail. for example what is the difference between 4 and 5 scaling.

A value. Youre asking for specifics without context like knowing the context will make making a descision easier or more accurate? Its meant to be played with.

{
const MonsterGroup *groupptr = &group.obj();
if (ACTIVE_WORLD_OPTIONS[“MONSTER_UPGRADE_FACTOR”] > 0) {
const int replace_time = DAYS(groupptr->monster_group_time * ACTIVE_WORLD_OPTIONS[“MONSTER_UPGRADE_FACTOR”]);
while( groupptr->replace_monster_group && calendar::turn.get_turn() > replace_time ) {
groupptr = &groupptr->new_monster_group.obj();

It appears to be a multiplicative value that would have to be fairly small if large numbers such as 28 are ‘endgame’ monster and specific monster difficulties like ‘20’ are the norm.

The difference between 4 and 5 would be unnoticeable. I can barely tell the difference between 5 and 20.