
A modern 2D level editor from the creator of Dead Cells,
with a strong focus on user-friendliness.

What is LDtk?
LDtk is a professional 2D level editor that :
- has a very user-friendly interface,
- offers all the important core features,
- is free and open-source.
I created this tool from my 20+ years experience creating various games (including Dead Cells and many game jams).
Supported platforms and languages (learn more)













Every UI details were carefully designed to make the process of creating levels as smooth as possible.

For every new tool out there, there is this moment when you need to write the importer for your fav engine.
I’ve been there too: so LDtk offers a Super Simple Export option. And by “simple”, I mean it.

Define some simple rules in a visual editor and let LDtk do the boring part of the skinning job for you.

Choose your world layout among “Grid-vania”, “linear”, or “free” and reorganize all your levels using plain old simple drag-n-drop.

Create your own game entities, with any custom (typed) properties, like “hit points”, a patrol path or an inventory of items.

LDtk can load “*.aseprite” files directly, without any whatsoever intermediate PNG conversion. And with live-reloading support, you paint your tiles, save and LDtk updates everything accordingly, including image resizing.

LDtk focuses on these perspectives to make sure the user experience feels just right. Sorry, no isometric here!

The app outputs a well documented JSON format that you can easily parse in your favorite game engine.

Tiled (TMX) optional export to try it out before implementing your own importer.

We know bad things can happen. LDtk offers a strong backup system and can even restore unsaved changes if the app crashes. Which shouldn’t happen, but we don’t live in a perfect world.

LDtk can be used for free without any limitation. But if you want to support my work, please consider buying it, or becoming a direct sponsor.

If you are a Haxe user, you can benefit from a powerful and fully typed Haxe API, generated by macros as you type.