Page 1 of 1

[1.1.33] Error migrating save: "attempt to index global 'silo_script' (a nil value)"

Posted: Thu May 20, 2021 8:40 pm
by luziferius
I took the Darude Sandstorm video player save from viewtopic.php?t=37490, and tried to migrate it to 1.1 from 0.14.
To do so, I saved it in 0.15.40, then in 0.17.79, then in 1.0.0.

Loading the resulting map in 1.0.0 works fine, but trying to load it in 1.1.33 (to perform the final update) results in this error message

Code: Select all

factorio/temp/currently-playing/control.lua:46: attempt to index global 'silo_script' (a nil value)
stack traceback:
factorio/temp/currently-playing/control.lua:46: in main chunk
The full log is attached.

There is something wrong somewhere in the migration scripts. I’ll perform some additional tests to maybe find some more insights. If something comes up, I’ll update this post.

Edit 1: Using a different upgrade path (0.16.51, 1.0.0) instead of (0.15.40, 0.17.79, 1.0.0) doesn’t make any difference.

Edit 2: Converting the map to a scenario and back to a map has some effect:

Code: Select all

$ ./bin/x64/factorio -s Darude-Sandstorm-Video
$ rm saves/Darude-Sandstorm-Video.zip
$ ./bin/x64/factorio -m Darude-Sandstorm-Video
The script above does not make a difference when performed using 1.0.0, but does make one when the double conversion is performed in 0.15.40 or 0.16.51.

Doing the above double-conversion in 0.16.51 doubles the map size (from ~102 MiB to ~210MiB), but it remains loadable in 1.1.33
When the double-conversion is performed with 0.15.40, the result (~130MiB) is also loadable in 1.1.33
Sandstorm in 1.1.33.png
Sandstorm in 1.1.33.png (2.73 MiB) Viewed 1126 times

Re: [1.1.33] Error migrating save: "attempt to index global 'silo_script' (a nil value)"

Posted: Thu May 20, 2021 11:18 pm
by Silari
Sounds like issues with an old version of the script being kept and not updated, which can happen in some cases. A possible fix is described in viewtopic.php?f=49&t=95422