Page 1 of 1

[2.0.21] Menu Simulation "Train Station" is missing qualityID for id rail, rail-ramp

Posted: Sat Nov 23, 2024 5:00 pm
by eugenekay
The Menu Simulation save files appear to have been created with an as-yet-unreleased 1.2.0 version of Factorio, and do not include Quality information for some entities in the map. When the Menu loads these simulations it must perform extra migration steps, which seems to take a few extra milliseconds, although I have not tested the timing.

What did you do?
Sat at the Factorio Menu screen while preparing an unrelated bug report.

What happened?
Saw some unexpected output in the Factorio Log file:

Code: Select all

  55.655 Info IDWithQuality.cpp:304: fixing missing qualityID for id rail
  55.655 Info Blueprint.cpp:52: when loading blueprint ""
  55.655 Info SimulationWidget.cpp:34: save __base__/menu-simulations/menu-simulation-train-station.zip
  55.655 Info IDWithQuality.cpp:304: fixing missing qualityID for id rail-ramp
  55.655 Info Blueprint.cpp:52: when loading blueprint ""
  55.655 Info SimulationWidget.cpp:34: save __base__/menu-simulations/menu-simulation-train-station.zip
What did you expect to happen instead? It might be obvious to you, but do it anyway!
No internal fixups should be necessary when loading Menu screen content.

Does it happen always, once, or sometimes?
Any time that the "menu-simulation-train-station.zip" is automatically loaded at the Menu screen.

In order to dig a little bit deeper:
- Copied "data\base\menu-simulations\menu-simulation-train-station.zip" into my Saves directory.
- Used the Scenario editor to Convert the Save file / open in Editor mode
- Checked log file again:

Code: Select all

 340.450 Loading map C:\Users\USERNAME\AppData\Roaming\Factorio\saves\menu-simulation-train-station.zip: 249773 bytes.
 340.451 Loading level.dat: 1266177 bytes.
 340.454 Info Scenario.cpp:178: Map version 1.2.0-351
 340.458 Info PrototypeMigrationList.cpp:197: Activating migration base/1.2.0 stack inserter rename.json
 340.458 Info PrototypeMigrationList.cpp:197: Activating migration base/2.0.0-biter-egg.json
 340.458 Info PrototypeMigrationList.cpp:197: Activating migration base/2.0.0-internal.json
 340.459 Info PrototypeMigrationList.cpp:197: Activating migration base/2.0.0-internal2.json
 340.459 Info PrototypeMigrationList.cpp:197: Activating migration base/2.0.0-internal3.json
 340.459 Info PrototypeMigrationList.cpp:197: Activating migration base/2.0.0.json
 340.459 Info PrototypeMigrationList.cpp:197: Activating migration space-age/aquilo-tilesets.json
 340.459 Info PrototypeMigrationList.cpp:197: Activating migration space-age/biolab.json
 340.459 Info PrototypeMigrationList.cpp:197: Activating migration space-age/jelly-yum-rename.json
 340.459 Info PrototypeMigrationList.cpp:197: Activating migration space-age/shattered-planet.json
 340.459 Info PrototypeMigrationList.cpp:197: Activating migration space-age/tungsten-belt-rename.json
 340.486 Info IDWithQuality.cpp:304: fixing missing qualityID for id rail
 340.486 Info Blueprint.cpp:52: when loading blueprint ""
 340.486 Info IDWithQuality.cpp:304: fixing missing qualityID for id rail-ramp
 340.486 Info Blueprint.cpp:52: when loading blueprint ""
 340.490 Loading blueprint storage: Local timestamp 1731284152, Cloud timestamp 1731390256
 340.594 Checksum for script __level__/control.lua: 1487321736
 340.595 Applying migration: Base Mod: 2.0.0.lua
 348.477 Loading level.dat: 1280223 bytes.
 348.477 Info Scenario.cpp:178: Map version 2.0.21-5
 348.512 Loading blueprint storage: Local timestamp 1731284152, Cloud timestamp 1731390256
 348.523 Loading script.dat: 1222 bytes.
 348.529 Checksum for script __level__/control.lua: 1487321736
There is no public Factorio matching version 1.2.0-351, which looks like Dev Build #351 from the in-development 1.2.0 branch.... I also noticed that this save file is NOT natively on Nauvis, as chunks generated outside of the Menu Simulation area have foreign terrain. Using a Map SizeLimit would prevent these chunks from generating.... but then the map would have to be re-centered on 0,0.... and this is just a Menu Simulation, so how perfect does it need to be?

I have not exhaustively checked the other Menu Simulatios (this is the only one that I have noticed produces Log file output), but as a random check:

Code: Select all

 271.910 Loading map C:\Users\USERNAME\AppData\Roaming\Factorio\saves\menu-simulation-brutal-defeat.zip: 202706 bytes.
 271.910 Loading level.dat: 1162119 bytes.
 271.913 Info Scenario.cpp:178: Map version 2.0.7-0
At least one other Menu Simulation was created using 2.0.7-0, which sounds like the Dev Build #0, just before the proper 2.0.7 Public release.

Re: [2.0.21] Menu Simulation "Train Station" is missing qualityID for id rail, rail-ramp

Posted: Sat Nov 23, 2024 5:37 pm
by robot256
"1.2" is what 2.0 was called before it was 2.0, so that menu sim file is *very* old. It should be loaded and resaved in the current version by the devs and updated in the game files.

Re: [2.0.21] Menu Simulation "Train Station" is missing qualityID for id rail, rail-ramp

Posted: Sat Nov 23, 2024 5:58 pm
by boskid
This log spam was removed for 2.0.22 already as it is quite useless. I am not seeing any need to resave those files as long as they are in range of loadable save file versions.

Re: [2.0.21] Menu Simulation "Train Station" is missing qualityID for id rail, rail-ramp

Posted: Sat Nov 23, 2024 6:17 pm
by eugenekay
What about the Milliseconds of delay due to running these Migrations each time the Menu Simulation is loaded? This produces an apparent “Freeze” at the end of the Previous Simulation for a few frames before this one starts. I can try to get a Demo Video later today.

Re: [2.0.21] Menu Simulation "Train Station" is missing qualityID for id rail, rail-ramp

Posted: Sat Nov 23, 2024 6:29 pm
by boskid
If we would want to have menu simulations not need to do any migrations then we would have to update them literally every single release and we do not care about this. Migrations are happening at every version, even within the same version when changing mod composition so i am not seeing this complaint as anything worth investigating.