
An open-source 2D level editor from the creator of Dead Cells,
with a strong focus on user-friendliness
Why another level editor?
LDtk (Level Designer Toolkit) is a 2D map editor based on my personal experience creating Dead Cells and making game jams.
My goal is to provide a level editor that has all the important core features and to do them right, with a modern user interface/experience.
Supported languages (learn more)
Easy to use
Every UI details were carefully designed to make the process of creating levels as smooth as possible.Auto-rendering
Define some simple rules in a visual editor and let LDtk do the boring part of the skinning job for you.World editor
Choose your world layout among “Grid-vania”, “linear”, or “free” and reorganize all your levels using plain old simple drag-n-drop.Entities
Create your own game entities, with any custom (typed) properties, like “hit points”, a patrol path or an inventory of items.Side & top-downs
LDtk focuses on these perspectives to make sure the user experience feels just right. Sorry, no isometric here!JSON
The app outputs a well documented JSON format that you can easily parse in your favorite game engine.Tiled export
Tiled (TMX) optional export to try it out before implementing your own importer.Pay what you want!
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.Optional Haxe API
If you are a Haxe user, you can benefit from a powerful and fully typed Haxe API, generated by macros as you type.
All features
Easy to use
Modern UI with a strong focus on ease-of-use and quality-of-life features.
Universal and agnostic
As long as your favorite game engine can read JSON, you can read data created in LDtk. The file format is simple and well documented 🙂
Customizable layers
Integer grid layers, Tile layers and Entity layers support
Auto-layers
Paint your collision map and see the grass, textures and all the small details being drawn automatically!
World editor
Just press a single key to zoom out to world mode! Pick a layout among “grid-vania“, “linear“, or “free” and reorganize all your levels using plain old simple drag-n-drop.
Entities
Fully customizable Entity with custom properties (ex: you can have a “Mob” entity, with a “hitPoints” field, which is an Integer limited to [0,10] bounds).
Enums
You can define an enumeration (ex: an “ItemType” enum with “Money“, “Ammo“, “Gun” values) and use this enum in your entity custom fields.
Enums can even be imported and synced directly from Haxe source code files!
HTML5 and WebGL
LDtk is built around modern web standards.
Auto-updated
You get notified as soon as a stable update is released and it’s up to you to install it when you’re ready, with a single click.
LDtk loves Haxe
If you’re a Haxe dev, a powerful open-source API which gives you access to fully typed values from your levels. It avoids mistakes like mistyping, renaming or removals: you see errors during compilation, not at runtime. For example, having:
var p = new MyLdtkProject();
you can do things like:
var level = p.all_levels.MyIntroLevel;
var hp = level.all_enemies[0].f_hitPoints;
Roadmap
The following features are planned in a quite short term, in no particular order. See official issue tracker fore more.