Tool flyingsnake - A world map renderer

Steffo

Duke Fishron
flyingsnake is a small and configurable Python tool that can create the full map image from a Terraria world file!

HtNEIKw.png


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.

69qRLZX.png


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.

Grkq5PQ.png


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.

Pifjb4D.png


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.

E05kgOA.png


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.
XDLRCAE.png


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.
 
I actually ended up making a timelapse of my community's multiplayer server by running flyingsnake on every backup snapshot of the world (one every 30 minutes):


Since it was a modded playthrough, some tiles became invisible, as lihzahrd does not yet read *.twld files.
 
I find watching the Crimson take over everything to be the high light of this, quite awesome, surprised no one has commented on this tool yet
 
Back
Top Bottom