Factorio World


Mod that changes the world generation to be a real-world map. Edit control.lua to select a scale!

2 months ago
0.14 - 0.18
16211
Owner:
TheOddler
Source:
TheOddler/FactorioWorld
Homepage:
https://github.com/TheOddler/FactorioWorld
License:
GNU GPLv3
Created:
3 years ago
Latest Version:
0.18.2 (2 months ago)
Factorio version:
0.14 - 0.18
Downloaded:
16211 times

FactorioWorld

A mod for factorio that changes the map into a real-world map.

Note that it only changes the terrain, and not the spawning of resources. This is on my list of things to do, so maybe in the future!

Download

You can get this mod here: https://mods.factorio.com/mods/TheOddler/factorio-world

Usage

  • Simply start a new game
  • Your world settings will be ignored, and the terrain replaced by the earth!

Settings

Use the ingame mod settings to set:

  • Map scale: Can be anything between 0.01 and infinite
  • Spawn:
    • Pick a location to start, or set to custom
    • When set to custom, it'll use the custom spawn x and y coordinates
  • Repeat map: If set to false everything after the first iteration will become water
  • Use large map: If set to true the mod will use a more detailed map
    • This will use about 4 times the memory I think
  • Safe zone size: All water within this zone will be turned into dirt

Generating your own maps

The mod reads lua files generated by a converter writen in Python.
These files are generated based on an image.
Currently I'm using the "Natural Earth II with Shaded Relief, Water, and Drainages" image from Natural Earth.

The generator simply iterates over each pixel, and assigns a tile-type to it.
The algorithm uses reference colors, and checks which one is closer to encode the types.
To compress the data a little I use a scheme where every tile-letter is followed by how many tiles there are of this type of that row.
The mod then takes these strings (one for each line of pixels), decompresses it to something it can read very quickly, and assigns the tiles a new type when a chunk is generated.

Require Python libraries

  • Pillow - for processing the images: pip install Pillow
  • tqdm - for fast loading bars: pip install tqdm

Usage

To generate a new lua file and load in into your game you'll have to do a little manual labour:

  1. In convert.py change the settings at the top of the file
    • image_file: the name of the image to use (to be placed next to the convert.py file)
    • resize_width: the size you want the final map to be (can be set to None if you just want the same size as the provided image)
    • terrain_codes: set which colours are what terrains !!DANGER!! If you change these, you'll have to update the terrain_codes in control.lua as well
  2. Run convert.py
  3. Copy the created lua files (World_large.lua and World_small.lua) into the mod's root folder
  4. Run the game and start a new game