Rampant 0.18.7
I created a small mod with only a tick handler to output when the evolution_by_killing_spawners
(evo_s
) changes. My character is standing idle; I had just finished killing about 10 bases. Here's a snippet at the start and a snippet and the end of a few day/night cycles. This pattern continues. I started at 22% evolution (17% from spawners) and ended my test at 66% (87% from spawners).
I noticed because at night time (I have nocturnal mode set), I got wrecked and there were big biters. That's what started me monitoring evolution and reloading an older save... and eventually writing the test.
533.700 Checksum for script G:/Games/Factorio/temp/currently-playing/control.lua: 2466797803
533.701 Checksum for script __personally-ratioed__/control.lua: 3191678421
533.719 Checksum for script __Rampant__/control.lua: 4248612112
delta_ticks= 0 (0.00s) evo=0.226727 evo_s=0.050000 (17%) [darkness=0.000000]
delta_ticks=7379 (122.98s) evo=0.228489 evo_s=0.052000 (17%) [darkness=0.000000]
delta_ticks= 1 (0.02s) evo=0.229680 evo_s=0.054000 (18%) [darkness=0.000000]
delta_ticks= 61 (1.02s) evo=0.230869 evo_s=0.056000 (18%) [darkness=0.000000]
delta_ticks= 1 (0.02s) evo=0.232052 evo_s=0.058000 (19%) [darkness=0.000000]
delta_ticks= 61 (1.02s) evo=0.233234 evo_s=0.060000 (19%) [darkness=0.000000]
delta_ticks= 175 (2.92s) evo=0.234417 evo_s=0.062000 (20%) [darkness=0.000000]
delta_ticks= 63 (1.05s) evo=0.235591 evo_s=0.064000 (20%) [darkness=0.000000]
delta_ticks= 382 (6.37s) evo=0.236774 evo_s=0.066000 (21%) [darkness=0.000000]
delta_ticks= 1 (0.02s) evo=0.237939 evo_s=0.068000 (21%) [darkness=0.000000]
delta_ticks=2855 (47.58s) evo=0.239212 evo_s=0.070000 (22%) [darkness=0.000000]
delta_ticks= 1 (0.02s) evo=0.240369 evo_s=0.072000 (22%) [darkness=0.000000]
delta_ticks= 61 (1.02s) evo=0.241525 evo_s=0.074000 (23%) [darkness=0.000000]
delta_ticks= 1 (0.02s) evo=0.242676 evo_s=0.076000 (23%) [darkness=0.000000]
delta_ticks= 61 (1.02s) evo=0.243825 evo_s=0.078000 (24%) [darkness=0.000000]
delta_ticks= 175 (2.92s) evo=0.244976 evo_s=0.080000 (24%) [darkness=0.000000]
delta_ticks= 63 (1.05s) evo=0.246118 evo_s=0.082000 (25%) [darkness=0.000000]
delta_ticks= 96 (1.60s) evo=0.247259 evo_s=0.084000 (25%) [darkness=0.000000]
...
delta_ticks=1078 (17.97s) evo=0.662559 evo_s=1.704000 (87%) [darkness=0.349600]
delta_ticks= 1 (0.02s) evo=0.662786 evo_s=1.706000 (87%) [darkness=0.349550]
delta_ticks= 62 (1.03s) evo=0.663014 evo_s=1.708000 (87%) [darkness=0.346450]
delta_ticks= 236 (3.93s) evo=0.663243 evo_s=1.710000 (87%) [darkness=0.334650]
delta_ticks= 63 (1.05s) evo=0.663471 evo_s=1.712000 (87%) [darkness=0.331500]
delta_ticks= 159 (2.65s) evo=0.663698 evo_s=1.714000 (87%) [darkness=0.323550]
delta_ticks=1109 (18.48s) evo=0.663933 evo_s=1.716000 (87%) [darkness=0.268100]
Once I removed Rampant and had only that one mod installed that outputs the above lines, the evolution from killing spawners remained stable.
Here's the on_tick
handler I wrote:
local evo_s_prev = 0
local evo_tick_prev
script.on_event (defines.events.on_tick,function (event)
local evo = game.forces.enemy.evolution_factor
local evo_t = game.forces.enemy.evolution_factor_by_time
local evo_s = game.forces.enemy.evolution_factor_by_killing_spawners
local evo_p = game.forces.enemy.evolution_factor_by_pollution
local evo_total = evo_t + evo_s + evo_p
if not evo_tick_prev then evo_tick_prev = event.tick end
local delta_ticks = event.tick - evo_tick_prev
if evo_s ~= evo_s_prev then
local surface = game.surfaces[1]
print (string.format ("delta_ticks=%4d (%.2fs) evo=%f evo_s=%f (%d%%) [darkness=%f]",
delta_ticks, delta_ticks / 60, evo, evo_s, evo_s * 100 / evo_total, surface.darkness
))
evo_s_prev = evo_s
evo_tick_prev = event.tick
end
end)