A downloadable level editor for Windows, macOS, and Linux
LDtk is a modern and open-source 2D level editor, specifically designed for indie devs.
It is based on my personal experience creating Dead Cells and making game jams.
My goal is to provide an editor that has all the important core features and to do them right, with a modern user interface/experience.
Is it free?
Yes it is :) LDtk is "pay what you want, including free".
You're totally free to try and use it without paying anything, and all the things you create with this tool are, obviously, all yours (even for commercial use). At any given time, you can still decide to contribute by paying any price you want for the app.
- Easy to use: modern UI with a strong focus on ease-of-use and quality-of-life features.
- Universal and agnostic: compatible with all languages (not only Haxe) and game frameworks in the world
- JSON: easy to parse file format for any game-engine out there (I promise it’s actually really easy). Haxe isn’t required.
- Tiled export: LDtk can export Tiled TMX files for frameworks that only support this format. Note: this feature ONLY exists as a temporary method to load a LDtk project JSON in a game framework that only supports TMX files. It is recommended to just read the LDtk JSON.
- 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!
- 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.
- External enums: enums can be imported and synced directly from Haxe source code files (HX file)!
- HTML5: LDtk is built around modern web standards.
- Auto update: 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: a powerful Haxe 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
Click download now to get access to the following files: