flyingsnake is a small and configurable Python tool that can create the full map image from a Terraria world file!
I created it because I wanted to create the timelapse of a Terraria server where I played with some friends, and could not find any way to programmatically generate multiple world maps.
Requirements
To use
flyingsnake, you need
Python 3.7 or higher installed on your machine and available in your PATH.
Installing
Once you have Python 3.7 installed on your machine, you can install
flyingsnake through pip:
Windows
Open either Windows PowerShell (Windows 10) or the Command Prompt (other Windows versions) and enter:
Code:
pip install flyingsnake --upgrade
Linux
Enter in your terminal:
Code:
python3.7 -m pip install flyingsnake --upgrade
Usage
To create a world map image named
Output.png from the
Small_Example.wld file present in your current working directory, you can enter in your terminal:
Code:
flyingsnake Small_Example.wld Output.png
Layers
The world map is generated by merging together multiple layers that can be enabled/disabled through flags.
In order, those are:
- Background
- Walls
- Liquids
- Blocks
- Wires
Background
The background layer is made by coloring the Overworld, the Underground and the Caverns their respective background color.
It can be selected exclusively with the
--background flag, or turned off with the
--no-background flag.
Walls
The walls layer contains the colors of the walls present in the world.
It can be selected exclusively with the
--walls flag, or turned off with the
--no-walls flag.
If the walls are painted, they will be colored with the paint color.
You can turn off paint colors with the
--no-paints option.
Liquids
The liquids layer contains the colors of the liquids present in the world (water, lava, honey...)
It can be selected exclusively with the
--liquids flag, or turned off with the
--no-liquids flag.
Blocks
The blocks layer contains the colors of the blocks present in the world.
It can be selected exclusively with the
--blocks flag, or turned off with the
--no-blocks flag.
If the blocks are painted, they will be colored with the paint color.
You can turn off paint colors with the
--no-paints option.
Wires
The wires layer is a semi-transparent overlay of the wires present in the world.
It can be selected exclusively with the
--wires flag, or turned off with the
--no-wires flag.
Custom colors
By default,
flyingsnake uses the colors defined in the
TEdit settings file.
However, you can use different colors by passing the
--colors colors.json option to the command.
You can see an example colors file
here; the colors are in RGBA format, and go from 0 to 255.
Source code
The source code of flyingsnake is available
on GitHub; it is licensed under the
AGPL 3.0 License.