[Games](https://aimantas.com/writing/games/) 5 min read Live · checked 28 Oct I made a Lithuania map for Transport Fever 3. Here's how to make your own

Free Transport Fever 3 maps of Lithuania, Germany, Switzerland, Austria, Hungary and the Netherlands, and a step by step way to make one of your own country, with prompts you can give Claude.

 **Aimantas** · Product builder 28 October 2026  Updated 1 Nov

_ Screenshot Vilnius on the Neris, 510 residents at the start. Transport Fever 3, 27 Oct._

**33** real towns
**16.4 km** map side
**~100×** first town size
**3** bugs fixed
[Get the map on the Mod Hub](https://mod.io/g/transportfever3/m/lietuva-lithuania-island-map)[Source on GitHub](https://github.com/aimantas/tf3-lithuania-map)[Install steps](#install)

## The short version

- I made a free Transport Fever 3 map of Lithuania from real elevation data and OpenStreetMap.
- Update 1 Nov: Germany, Switzerland, Austria, Hungary and the Netherlands are on the Mod Hub too.
- You can make a map of any country the same way: six steps, with prompts to give Claude.
- Download it from the Mod Hub or GitHub. Install steps are in the article.

## The towns ate my country

I loaded my brand new Lithuania into Transport Fever 3 and the whole island turned grey.

Street grids everywhere. I asked for 33 towns and got 33 towns, each about 100 times bigger than I wanted. Vilnius took it well. The farmland did not. [

[Image: Video thumbnail: Game crashed, over the AI's in-game panel and the crash dialog]  3:26](https://www.youtube.com/watch?v=Rs6wHat6m8M)

_ Video I'm teaching AI to play on this map. Three AIs, one crash. It loads from YouTube only when you press play._

That was the first of three ways this map broke. It works now, it's free, and the same recipe will build a map of your own country. Claude has since been running a whole transport company on it, badly. That story is in [I let Claude run a Transport Fever 3 company for 26 years](https://aimantas.com/writing/transport-fever-3-mcp-server/).

- [The map on the Mod Hub](https://mod.io/g/transportfever3/m/lietuva-lithuania-island-map)
- [The source on GitHub](https://github.com/aimantas/tf3-lithuania-map), with the build scripts

## Update: five more countries

Germany got a lot of downloads on its first day, so I ran the same recipe on the other countries where the game is most popular. Each is the whole country as an island, with real rivers, towns where they really are and starter industries. I made the Alps about 500 m tall, which plays better than the real 3 km, and kept the Netherlands almost flat.

- [Deutschland: Germany](https://mod.io/g/transportfever3/m/deutschland-germany-island-map), 60 towns
- [Schweiz: Switzerland](https://mod.io/g/transportfever3/m/schweiz-switzerland-island-map), 36 towns, Alps and lakes
- [Österreich: Austria](https://mod.io/g/transportfever3/m/sterreich-austria-island-map), 40 towns, the Danube
- [Magyarország: Hungary](https://mod.io/g/transportfever3/m/magyarorszg-hungary-island-map), 40 towns, Lake Balaton
- [Nederland: Netherlands](https://mod.io/g/transportfever3/m/nederland-netherlands-map), 45 towns, big rivers, flat land

The build scripts and heightmaps for all of them are in the [country maps repo](https://github.com/aimantas/tf3-country-maps). Each map's install steps list its own minimum and maximum height for the import.

## What you get

Lithuania as an island. Real terrain, the Nemunas and Neris rivers dug wide enough for ships, and 33 real towns in their real places, sized by population. Vilnius starts with 581 residents, Kaunas with 316, Klaipėda with 162. There are 16 starter industries and a set of Lithuanian town names. The roads between towns are yours to build.

## Make your own, in six steps

Nothing here is specific to Lithuania. Swap in any country.

1. **Pick a square.** The game wants a square map, 16.384 km on a side, with a 4097 by 4097 pixel heightmap. Cut a 420 km square around your country.
1. **Download the elevation.** The free Terrain Tiles on AWS hide a height in every pixel: `R × 256 + G + B / 256 − 32768` metres. Stitch them, halve the heights so hills don't become cliffs, and save a 16-bit grayscale PNG.
1. **Make it an island.** Everything outside the border sinks into a beach and shallow sea. The coast is fiction, and it plays better.
1. **Dig the rivers.** At this scale a real river is a few pixels wide. Draw the OpenStreetMap river lines wider and down to sea level so ships can use them.
1. **Place the towns.** OpenStreetMap has every town and most populations. I divided the population by 1,000 for the starting size, with a minimum of 25.
1. **Add industries by hand.** Farms, forests, sawmills, food, breweries. Nobody has data for this, so it's game design.

[Image: Shaded relief map of Lithuania as an island with town dots and labels, sea all around]

_ Diagram The map as data, before the game touches it. Not an in-game image._

## Let Claude do the typing

I built mine by working with a coding assistant, and these prompts are close to what I'd give it again. Use Claude Code or any assistant that can run code and look at the files it makes. The important part is the last sentence of each: make it check its own work.

**1. The terrain**

```
I'm making a Transport Fever 3 map of [COUNTRY]. Write a Python script
that downloads the AWS Terrain Tiles (terrarium encoding, zoom 9) for a
420 km square around the country, decodes each pixel to metres with
R*256 + G + B/256 - 32768, stitches them, resamples to 4097 x 4097,
smooths it slightly, halves the heights, and saves a 16-bit grayscale
PNG where the lowest point is -12 m and the highest 180 m. Then open
the PNG and tell me whether the coast and the biggest river look right.
```

**2. The island and the rivers**

```
Using the Natural Earth border for [COUNTRY], sink everything outside
the border into a gentle beach and shallow sea so the country becomes
an island. Using OpenStreetMap river lines for [RIVER NAMES], draw them
wider and carve them down to sea level so ships can use them. Render a
preview image with the coastline and rivers so I can check it.
```

**3. The towns**

```
Query OpenStreetMap through Overpass for place=city and place=town
nodes in [COUNTRY]. Convert each position to game metres on the same
square as the heightmap: centre at 0,0, 16384 m wide, east positive,
north positive. Nudge any town that lands on water. Size each town as
its population tag divided by 1000, minimum 25. Write a Lua file in
the exact format of the Transport Fever 3 Map Editor's towns and
industries export (a data() function returning towns and industries).
Then list every town with no population tag and confirm every town
is on dry land.
```

Once you have a map you like, open it in the game's Map Editor and use the **Export** button in the towns and industries tool. The game writes the exact file format, including the cargo needs that I forgot at first. Hand that file back to your assistant as the example for next time.

## Three ways it broke

**Towns 100 times too big.** My import code edited the game's list of planned towns, then asked the game for that list again to build them. The game hands you a fresh copy every time, so my changes vanished. The fix was to pass the edited list straight to the build command.

#### Before

[Image: Aerial view with huge grey town grids covering much of the land around a river]

#### After

[Image: Aerial view with small towns and farm fields beside a river]

**Towns that wanted nothing.** With the sizes right, the towns just sat there. No needs, nothing to deliver. I had never told them what they need. Now every town asks for vegetables in its shops and planks in its industry.

**A world with no towns at all.** My very first town file had no `data()` function, which is what the game calls to read it. No error, no crash, just an empty country.

So now every map gets imported into a clean world, and I read the towns, heights and needs back from the running game before anyone else sees it.

## Install and play

1. **Subscribe on the Mod Hub.** Open the [Lietuva map page](https://mod.io/g/transportfever3/m/lietuva-lithuania-island-map), or search "Lietuva" in the game's Mod Hub. This adds the Lithuanian town names.
1. **Download the map files.** Get the [zip from GitHub](https://github.com/aimantas/tf3-lithuania-map/archive/refs/heads/main.zip). Copy everything in `mod/map-kit/heightmaps` into the `heightmaps` folder and everything in `mod/map-kit/towns_industries` into `towns_industries`. Both are inside your Transport Fever 3 userdata folder, `Steam/userdata/<your id>/3493540/local`.
1. **Start a new Map Editor map:** Temperate, Very Large, 1:1. Pick the Lietuviški / Lithuanian names.
1. **Import the heightmap** `Lietuva_4097_playable.png` with minimum −12, maximum 180, water level 0. Press Return after typing each number, or the old value stays and your mountains come out about 16 times too tall.
1. **Import the towns** `Lietuva_33_towns_starter_industries`.
1. **Connect the towns, save the map and start a game.**

[Image: Kaunas on a small peninsula where two rivers meet, with a large complex to the south]

_ Screenshot Kaunas, where Nemunas meets Neris. Transport Fever 3, 27 Oct._

## Share your own

A mod is a folder: `mod.json`, a `_metadata` folder with `modinfo.json` and 1920 by 1080 images (`0.png` is the cover), and your content. Copy it into `staging_area` in your userdata folder, open Mod Hub, then My Mods, log in to mod.io, tick Set Public and upload. Names can't pass 32 characters and summaries 100. The Mod Hub rejects `.js` and `.html` files inside a mod, so keep scripts out. Before you publish, check mod IDs, paths and your default company name for anything personal.

To update later, raise `revision` in `mod.json` and put your mod's number in `_metadata/mod.io_fileid.txt`. Replace the staging folder and that file goes with it, so your next upload would create a duplicate page.

## Links

- [Lietuva: Lithuania Island Map on the Mod Hub](https://mod.io/g/transportfever3/m/lietuva-lithuania-island-map)
- [Download the map files (zip)](https://github.com/aimantas/tf3-lithuania-map/archive/refs/heads/main.zip)
- [Source and build scripts on GitHub](https://github.com/aimantas/tf3-lithuania-map)
- [Germany, Switzerland, Austria, Hungary and Netherlands: maps and scripts](https://github.com/aimantas/tf3-country-maps)
- [AI MCP Bridge](https://mod.io/g/transportfever3/m/ai-mcp-bridge), a mod that lets an AI assistant play the game with you, and its [companion download](https://aimantas.com/assets/downloads/ai-mcp-bridge-companion.zip)
      Sources5 references

1. Imports and fixes, my machine: oversized towns 3 Oct 2026; capacities fixed 4 Oct; cargo needs added and read back for all 33 towns 4 Oct; clean native import and first vehicle purchase 27 Oct 2026.
1. Country maps checked in the public Mod Hub list 1 Nov 2026; each read back in the running game (town, industry and height checks) before upload. Source: [GitHub](https://github.com/aimantas/tf3-country-maps).
1. Public pages checked 28 Oct 2026: [map](https://mod.io/g/transportfever3/m/lietuva-lithuania-island-map), [AI MCP Bridge](https://mod.io/g/transportfever3/m/ai-mcp-bridge), [GitHub](https://github.com/aimantas/tf3-lithuania-map).
1. Elevation: [Terrain Tiles on AWS Open Data](https://registry.opendata.aws/terrain-tiles/) (EU-DEM produced using Copernicus data and information funded by the European Union; SRTM, USGS; ETOPO1, NOAA).
1. Towns, populations and rivers: © [OpenStreetMap contributors](https://www.openstreetmap.org/copyright), ODbL. Country outline: Natural Earth, public domain.

[   3:26**I Taught AI to Play Transport Fever 3** Watch the video](#watch)[Open on YouTube ↗](https://www.youtube.com/watch?v=Rs6wHat6m8M)

## Get it

- [ Lithuania mapMod Hub ↗](https://mod.io/g/transportfever3/m/lietuva-lithuania-island-map)
- [ AI MCP BridgeMod Hub ↗](https://mod.io/g/transportfever3/m/ai-mcp-bridge)
- [ Map sourceGitHub ↗](https://github.com/aimantas/tf3-lithuania-map)
- [ Germany mapMod Hub ↗](https://mod.io/g/transportfever3/m/deutschland-germany-island-map)
- [ Switzerland mapMod Hub ↗](https://mod.io/g/transportfever3/m/schweiz-switzerland-island-map)
- [ Austria mapMod Hub ↗](https://mod.io/g/transportfever3/m/sterreich-austria-island-map)
- [ Hungary mapMod Hub ↗](https://mod.io/g/transportfever3/m/magyarorszg-hungary-island-map)
- [ Netherlands mapMod Hub ↗](https://mod.io/g/transportfever3/m/nederland-netherlands-map)
- [ All country mapsGitHub ↗](https://github.com/aimantas/tf3-country-maps)
[  **Aimantas**@aimantasai  Short updates from the builds, between articles. Follow on X](https://x.com/intent/follow?screen_name=aimantasai)
[   3:26**I Taught AI to Play Transport Fever 3** Watch the video](#watch)[Open on YouTube ↗](https://www.youtube.com/watch?v=Rs6wHat6m8M)

## Get it

- [ Lithuania mapMod Hub ↗](https://mod.io/g/transportfever3/m/lietuva-lithuania-island-map)
- [ AI MCP BridgeMod Hub ↗](https://mod.io/g/transportfever3/m/ai-mcp-bridge)
- [ Map sourceGitHub ↗](https://github.com/aimantas/tf3-lithuania-map)
- [ Germany mapMod Hub ↗](https://mod.io/g/transportfever3/m/deutschland-germany-island-map)
- [ Switzerland mapMod Hub ↗](https://mod.io/g/transportfever3/m/schweiz-switzerland-island-map)
- [ Austria mapMod Hub ↗](https://mod.io/g/transportfever3/m/sterreich-austria-island-map)
- [ Hungary mapMod Hub ↗](https://mod.io/g/transportfever3/m/magyarorszg-hungary-island-map)
- [ Netherlands mapMod Hub ↗](https://mod.io/g/transportfever3/m/nederland-netherlands-map)
- [ All country mapsGitHub ↗](https://github.com/aimantas/tf3-country-maps)
[  **Aimantas**@aimantasai  Short updates from the builds, between articles. Follow on X](https://x.com/intent/follow?screen_name=aimantasai)

## In this article

1. [The towns ate my country](#the-towns-ate-my-country)
1. [Update: five more countries](#more-maps)
1. [What you get](#the-map)
1. [Make your own, in six steps](#make-your-own)
1. [Let Claude do the typing](#claude-prompts)
1. [Three ways it broke](#three-ways)
1. [Install and play](#install)
1. [Share your own](#share-yours)
1. [Links](#links)
1. [Sources](#sources)

## Keep reading[All 14 articles →](https://aimantas.com/writing/)
[

Newer

 Games 6 min read

### I let Claude run a Transport Fever 3 company for 26 years. It's $4.2M in debt

Claude has been running a Transport Fever 3 company through my AI MCP Bridge mod. Here's every run, what broke, the real numbers, and how to try the bridge yourself.

 1 November 2026 Read →  ](https://aimantas.com/writing/transport-fever-3-mcp-server/)[

Older

 Design 6 min read

### Drop 08: One design skill, three AI models, the same VAT site

I ran the Hallmark v2 design skill on EU VAT Info three times from the same commit: Claude Opus 5.5 in Claude Code, and GPT-6 Sol and GPT-6 Astra in Codex. What it does, what each model built, and what its linter missed without a browser.

 23 October 2026 Read →  ](https://aimantas.com/writing/hallmark-design-skill-review/)[

Recent

 Design 6 min read

### I redesigned my homepage with Claude Fable 5.2. Before and after

One sentence of brief. The dashboard in my hero became a deck of seven real product screenshots, and the numbers moved into one band. Before and after screenshots, the four things that broke and what it cost in bytes.

 10 November 2026 Read →  ](https://aimantas.com/writing/homepage-redesign-claude-fable-5-2/)
