Well, I would guess its your map gen, and nothing to do with trains.rocifier wrote: ↑Wed Oct 23, 2019 5:17 amIf I enter the /c command with our scenario running, I get heuristic fails in heavy mode.Bilka wrote: ↑Mon Oct 21, 2019 11:19 am I cannot create a desync by simply doing global.locomotive_driver = global.locomotive.surface.create_entity({name = "character", position = global.locomotive.position, force = "player"}) global.locomotive_driver.driving = true and then deleting that surface. Neither with /c global.locomotive_driver = global.locomotive.surface.create_entity({name = "character", position = global.locomotive.position, force = "player"}) global.locomotive_driver.driving = true; global.locomotive_driver.riding_state = {acceleration = defines.riding.acceleration.accelerating, direction = defines.riding.direction.straight}; game.delete_surface(global.locomotive.surface);.
I have spent a long while eliminating code right down to these lines:
if these lines are executed in on_init(), it is MUCH more predictable to be able to cause a desync. In fact I can do it every time if I then do the train command at around tick 20. I think at that moment the chunk is half way generating or something. They don't need to be forced either, that just seems to make it full deterministic.Code: Select all
surface.request_to_generate_chunks({0,0}, 2) surface.force_generate_chunk_requests() for x = -768 + 32, 768 - 32, 32 do surface.request_to_generate_chunks({x, 96}, 1) surface.force_generate_chunk_requests() end
And since your map gen us using that simplex noise, I would be highly suspicious that is the cause