[0.17.31] map-gen-settings non-zero 'width' creates water worlds

Bugs that are actually features.
Post Reply
MC_Weezel
Burner Inserter
Burner Inserter
Posts: 6
Joined: Sun Apr 14, 2019 2:00 am
Contact:

[0.17.31] map-gen-settings non-zero 'width' creates water worlds

Post by MC_Weezel » Sun Apr 14, 2019 2:09 am

While attempting to automate the creation of a series of ribbon worlds, I discovered that any non-zero value for width or height causes the mapgen to place everything under water. A ribbon world is created, but it's not particularly usable! Was definitely worth a laugh though when I loaded into the save for the first time.

I do have clusterio mods installed, but I am using the factorio binary (within an alpine linux container) to generate these maps without starting up the factorio server.

I attempted to reproduce this on my local steam/windows system, but ran into parsing bugs (unexpected unicode characters) after saving the map-gen-settings using notepad.

User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 3592
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: [0.17.31] map-gen-settings non-zero 'width' creates water worlds

Post by Klonan » Sun Apr 14, 2019 10:26 am

Do you a map exchange string or the specific map gen settings you are using?

Using the base game ribbon world preset works absolutely fine, can you reproduce the issue without any mods enabled?

MC_Weezel
Burner Inserter
Burner Inserter
Posts: 6
Joined: Sun Apr 14, 2019 2:00 am
Contact:

Re: [0.17.31] map-gen-settings non-zero 'width' creates water worlds

Post by MC_Weezel » Sun Apr 14, 2019 7:42 pm

Here is the terminal output that I saw yesterday during map creation. I'll try to reproduce with no mods later today.

```
/factorio/factorioClusterio # ./factorio/bin/x64/factorio --create instances/instance/saves/save2.zip --map-ge
n-settings instances/instance/map-gen-settings.json
0.000 2019-04-14 01:34:20; Factorio 0.17.31 (build 44471, linux64, headless)
0.000 Operating system: Linux
0.000 Program arguments: "./factorio/bin/x64/factorio" "--create" "instances/instance/saves/save2.zip" "--map-gen-settings" "instances/instance/map-gen-settings.json"
0.000 Read data path: /opt/factorio/data
0.000 Write data path: /opt/factorio [77184/90585MB]
0.000 Binaries path: /opt/factorio/bin
0.021 System info: [CPU: Intel(R) Xeon(R) CPU X7560 @ 2.27GHz, 8 cores, RAM: 7820 MB]
0.021 Environment: DISPLAY=<unset> WAYLAND_DISPLAY=<unset> DESKTOP_SESSION=<unset> XDG_SESSION_DESKTOP=<unset> XDG_CURRENT_DESKTOP=<unset>
0.021 Running in headless mode
0.029 Loading mod core 0.0.0 (data.lua)
0.160 Loading mod base 0.17.31 (data.lua)
0.754 Loading mod base 0.17.31 (data-updates.lua)
0.996 Checksum for core: 161597740
0.996 Checksum of base: 1852277422
2.195 Info PlayerData.cpp:67: Local player-data.json available, timestamp 1555205280
2.195 Info PlayerData.cpp:74: Cloud player-data.json unavailable
2.198 Custom inputs active: 0
2.203 Factorio initialised
2.203 Info Main.cpp:927: Creating new map /factorio/factorioClusterio/instances/instance/saves/save2.zip
3.862 Loading level.dat: 605699 bytes.
3.863 Info Scenario.cpp:161: Map version 0.17.31-0
3.898 Checksum for script /opt/factorio/temp/currently-playing/control.lua: 1848333929
Done.
4.019 Info GlobalContext.cpp:684: Waiting for child processes to exit:
4.073 Goodbye
```




Here is the map-gen-settings.json file:





```
/factorio/factorioClusterio # cat instances/instance/map-gen-settings.json
{
"_terrain_segmentation_comment": "Inverse of map scale",
"terrain_segmentation": 1,

"_water_comment":
[
"Multiplier for water 'coverage' - higher increases the water level.",
"Water level = 10 * log2(this value)"
],
"water": 1,

"_comment_width+height": "Width and height of map, in tiles; 0 means infinite",
"width": 128,
"height": 128,

"_starting_area_comment": "Multiplier for 'biter free zone radius'",
"starting_area": 1,

"peaceful_mode": false,

"autoplace_controls":
{
"coal": {"frequency": 1, "size": 1, "richness": 1},
"stone": {"frequency": 1, "size": 1, "richness": 1},
"copper-ore": {"frequency": 1, "size": 1,"richness": 1},
"iron-ore": {"frequency": 1, "size": 1, "richness": 1},
"uranium-ore": {"frequency": 1, "size": 1, "richness": 1},
"crude-oil": {"frequency": 1, "size": 1, "richness": 1},
"trees": {"frequency": 1, "size": 1, "richness": 1},
"enemy-base": {"frequency": 1, "size": 1, "richness": 1}
},

"cliff_settings":
{
"_name_comment": "Name of the cliff prototype",
"name": "cliff",

"_cliff_elevation_0_comment": "Elevation of first row of cliffs",
"cliff_elevation_0": 10,

"_cliff_elevation_interval_comment": "Elevation difference between successive rows of cliffs",
"cliff_elevation_interval": 10,

"_richness_comment": "Multiplier for cliff continuity; 0 will result in no cliffs, 10 will make all cliff rows completely solid",
"richness": 1
},

"_property_expression_names_comment":
[
"Overrides for property value generators",
"Elevation influences water and cliff placement.",
"Leave it blank to get 'normal' terrain.",
"Use '0_16-elevation' to reproduce terrain from 0.16.",
"Use '0_17-island' to get an island."
],
"property_expression_names":
{
"elevation": "0_17-island",

"control-setting:aux:bias": "0.300000",
"control-setting:aux:frequency:multiplier": "1.333333",
"control-setting:moisture:bias": "0.100000",
"control-setting:moisture:frequency:multiplier": "0.500000"
},

"starting_points":
[
{"x": 1000, "y": 2000}
],

"_seed_comment": "Use null for a random seed, number for a specific seed.",
"seed": null
}
```

MC_Weezel
Burner Inserter
Burner Inserter
Posts: 6
Joined: Sun Apr 14, 2019 2:00 am
Contact:

Re: [0.17.31] map-gen-settings non-zero 'width' creates water worlds

Post by MC_Weezel » Sun Apr 14, 2019 7:49 pm

Here's my map exchange string:

>>>eNpjYBBkkGcAgwZ7EOZgSc5PzIHxQJgrOb+gILVIN78oFVmYM7mo
NCVVNz8TVXFqXmpupW5SYjGKYo7Movw8dBNYi0vy81BFSopSU4uRRbh
LixLzMktz0fUyMK7y0n7eAHI2EP+vZ1D4/x+EgawHQIEHDAxwTzECxV
4wMzBcYGdglUjOzyspys/RLU4tKcnMS7dKLK2wSspMLOYw0DM2AAENb
CrSilILS1PzkiutcktzSjILcjJTizgM9YzBQBZdR25+ZnFJaVEqzGBD
sMG6OJVhNd1AzxSsjTM1J7UssSQzP4/bIN7QXDezOCcxL4U1OSczLY2
BQcERghvsGRkZq0XWuT+smmLPCPG6ngOU8QEqciAJJuIJY/g54JRSgT
FMkMyB+PgzEgNiaQnQCqgqDgcEAyLZApJkZOx9u3XB92MX7Bj/rPx4y
TcpwZ7R0FXk3QejdXZASXagBkYmODFrJgjshHmFAWbmA3uo1E17xrNn
QOCNPSMrSIcIiHCwABIHvJkZGAX4gKwFPUBCQYYB5jQ7mDEiDoxpYPA
N5pPHMMZle3R/AAPCBmS4HIg4ASLAFsJdxghlRjpAJCQRskCtRgzI1q
cgPHcSZuNhJKvR3IAZB8heQBNRQQp4LpA9KXAClPwRIQjMCFCeQ70DM
wMCACNYcFObJQBwsuON<<<

MC_Weezel
Burner Inserter
Burner Inserter
Posts: 6
Joined: Sun Apr 14, 2019 2:00 am
Contact:

Re: [0.17.31] map-gen-settings non-zero 'width' creates water worlds

Post by MC_Weezel » Sun Apr 14, 2019 8:56 pm

I disabled the clusterio mod, and saw the same behavior.

User avatar
TruePikachu
Filter Inserter
Filter Inserter
Posts: 865
Joined: Sat Apr 09, 2016 8:39 pm
Contact:

Re: [0.17.31] map-gen-settings non-zero 'width' creates water worlds

Post by TruePikachu » Mon Apr 15, 2019 12:20 am

Unable to reproduce using the provided exchange string.

MC_Weezel
Burner Inserter
Burner Inserter
Posts: 6
Joined: Sun Apr 14, 2019 2:00 am
Contact:

Re: [0.17.31] map-gen-settings non-zero 'width' creates water worlds

Post by MC_Weezel » Mon Apr 15, 2019 12:52 am

Weird. When I load up the map exchange string as a new game, then I do see a normal map, ... what I suspect is the non-bugged behavior. I got that map exchange string that I posted earlier by saving a copy of my server's water world locally, and loading it up to pretend to play it.

Are sharing zipped save files around here frowned upon? I could post the bugged save that I used to extract that map exchange string if it helps.

Has anyone else tried to reproduce this problem by creating a ribbon-world map out of the headless linux factorio binary? That seems to be where the problem is.

MC_Weezel
Burner Inserter
Burner Inserter
Posts: 6
Joined: Sun Apr 14, 2019 2:00 am
Contact:

Re: [0.17.31] map-gen-settings non-zero 'width' creates water worlds

Post by MC_Weezel » Mon Apr 15, 2019 2:56 am

Okay, I think I can reproduce this problem on Windows as well.

1) Copy the default map-gen-settings.example.json file to map-gen-settings.ribbon.json
2) Edit map-gen-settings.ribbon.json and change "height": 0, to "height": 32,
3) Create the map using the factorio binary --create flag: (Full output shown below)


PS F:\Steam\steamapps\common\Factorio\bin\x64> .\factorio.exe --create C:\Users\Ryan\AppData\Roaming\Factorio\saves\waterworld2.zip --map-gen-settings F:\Steam\steamapps\common\Factorio\data\map-gen-settings.ribbon.json
PS F:\Steam\steamapps\common\Factorio\bin\x64> 0.001 2019-04-14 22:52:29; Factorio 0.17.31 (build 44471, win64, steam)
0.001 Operating system: Windows 10 (version 1803)
0.001 Program arguments: "F:\Steam\steamapps\common\Factorio\bin\x64\factorio.exe" "--create" "C:\Users\Ryan\AppData\Roaming\Factorio\saves\waterworld2.zip" "--map-gen-settings" "F:\Steam\steamapps\common\Factorio\data\map-gen-settings.ribbon.json"
0.002 Read data path: F:/Steam/steamapps/common/Factorio/data
0.002 Write data path: C:/Users/Ryan/AppData/Roaming/Factorio [11358/74433MB]
0.002 Binaries path: F:/Steam/steamapps/common/Factorio/bin
0.008 System info: [CPU: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz, 8 cores, RAM: 4204/32717 MB, page: 6132/37581 MB, virtual: 4251/134217727 MB, extended virtual: 0 MB]
0.008 Running in headless mode
0.012 Loading mod core 0.0.0 (data.lua)
0.046 Loading mod base 0.17.31 (data.lua)
0.201 Loading mod clusterio 1.15.1 (data.lua)
0.278 Loading mod base 0.17.31 (data-updates.lua)
0.354 Loading mod clusterio 1.15.1 (data-final-fixes.lua)
0.428 Checksum for core: 161597740
0.428 Checksum of base: 1852277422
0.428 Checksum of clusterio: 3352322275
0.814 Info PlayerData.cpp:69: Local player-data.json unavailable
0.814 Info PlayerData.cpp:74: Cloud player-data.json unavailable
0.816 Custom inputs active: 0
0.817 Factorio initialised
0.818 Info Main.cpp:927: Creating new map C:\Users\Ryan\AppData\Roaming\Factorio\saves\waterworld2.zip
1.356 Loading level.dat: 647096 bytes.
1.356 Info Scenario.cpp:161: Map version 0.17.31-0
1.380 Checksum for script C:/Users/Ryan/AppData/Roaming/Factorio/temp/currently-playing/control.lua: 1848333929
1.383 Checksum for script __clusterio__/control.lua: 3263127325
Done.
1.555 Goodbye


4) Load the map in factorio single player and get this error message:
Couldn't find suitable position to put the player in the perimeter of 200 tiles from the point {1000.0000000000, 2000.0000000000}



If I move this save to a headless factorio server and connect to it, I see that it's just water.

User avatar
Klonan
Factorio Staff
Factorio Staff
Posts: 3592
Joined: Sun Jan 11, 2015 2:09 pm
Contact:

Re: [0.17.31] map-gen-settings non-zero 'width' creates water worlds

Post by Klonan » Mon Apr 15, 2019 8:14 am

Yea, you're setting a height and width, but your starting point is somewhere in the 1000s

Set your Starting point to {0,0} if you expect to have land within the ribbon

Post Reply

Return to “Not a bug”

Who is online

Users browsing this forum: Bilka, Freeman55