LDtk level editor
A downloadable level editor for Windows, macOS, and Linux
Download NowName your own price
A modern 2D level editor
from the director of Dead Cells.
Fast. Free. Open source.
LDtk is my dream level editor, built from 20+ years of experience creating video games.
It delivers all the important features in a modern and user-friendly interface.
š Website | š¬ Discord | š Documentation
All features
- 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 (learn more)
- JSON: easy to parse file format for any game-engine out there (I promise itās actually really easy). Haxe isnāt required.
- 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.
Super Simple export
I know: for every new tool out there, there is this moment when you need to write the importer for your favorite game engine.
Iāve been there too, so LDtk offers a Super simple export option. Enable it and you will get:
- One PNG per layer in each level
- A compositeā PNG per level (ie. all layers merged together)
- A very simple, straightforward and optional JSON file per level, if you want to access your Entities data or other information.
Status | In development |
Category | Tool |
Platforms | Windows, macOS, Linux |
Rating | Rated 4.9 out of 5 stars (146 total ratings) |
Author | Deepnight Games |
Made with | Haxe |
Tags | 2D, gamedev, haxe, Level Editor |
Code license | MIT License |
Average session | Days or more |
Languages | English |
Inputs | Keyboard, Mouse |
Links | Homepage, Twitter/X, Blog |
Download
Download NowName your own price
Click download now to get access to the following files:
Windows 64 bits and 32 bits 159 MB
Version 1.5.3
macOS (experimental) 168 MB
Linux Ubuntu (experimental) 108 MB
Development log
- 1.5.3Jan 15, 2024
- 1.5.2Jan 12, 2024
- 1.5.1Jan 11, 2024
- 1.5.0 - New logo and 20x faster!Jan 10, 2024
- 1.4.1Sep 25, 2023
- 1.4.0 - Int-Grid groupsSep 22, 2023
- 1.3.4Aug 21, 2023
- 1.3.3May 10, 2023
Comments
Log in with itch.io to leave a comment.
Any updates planned for this?
Hello, I liked the idea of the program, but I want a Linux version AppImage
Does this work with gamemaker?
Hi, Just a Note for any one having a BLACK SCREEN :
run the editor in compatibility mode for Windows Vista and it will should work just fine
This is a fantastic tool. Have used it in the past and I'm still impressed by the effort that goes into it. The super simple export is a particularly good new feature that I'm betting will see lots of use in my games.
So good. Thank you for making this. Splits up my design work. Creative level design first, and then I can do the coding later. Brilliant.
the assets inside it. Especificaly the NuclearBlaze assets can be used in another project?
Sure!
I unfortunately get the following error message when starting the latest version:
"the procedure entry point DiscardVirtualMemory could not be located in the dynamic link library kernel32.dll."
Did some checking ... need version 1.25, 1.3+ dropped support for Windows 7 ...
Have the same issue, and this was the answer from M$.
.png
This is not running on my windows 10 PC, it starts but screen stays black.
Hi! Sorry about that, LDtk should work just fine with Win10. Are your graphic card drivers up-to-date? Maybe try fully uninstalling LDtk then re-installing?
Graphic Drivers are up to date i did the uninstall and reinstall, i used revo uninstaller , I also tried running as admin, still wont pass the black screen. I did not have this issue with previous versions of LDtk, I was not sure if I was the only one, thank you for the response , I enjoy the product, when i go to run it...this is all that happens, https://gyazo.com/b5b07e5b0810d704118c6e58c4c74f3b.
You may want to check the content of the LDtk log file to see if anything weird happens there:
[BOOT] 2023-09-30 10:23:56 App started
[BOOT] 2023-09-30 10:23:56 Version: 1.4.1-64bits (build 471015)
[BOOT] 2023-09-30 10:23:56 ExePath: C:/Users/Administrator/AppData/Local/Programs/ldtk
[BOOT] 2023-09-30 10:23:56 Assets: C:/Users/Administrator/AppData/Local/Programs/ldtk/resources/app.asar/assets
[BOOT] 2023-09-30 10:23:56 ExtraFiles: C:/Users/Administrator/AppData/Local/Programs/ldtk/extraFiles
[BOOT] 2023-09-30 10:23:56 CWD: C:\Users\Administrator\AppData\Local\Programs\ldtk\
[BOOT] 2023-09-30 10:23:56 Display: 1536x864
[BOOT] 2023-09-30 10:23:56 Args: soloValues=[], args=[]
[FILE] 2023-09-30 10:23:56 Loading settings from C:/Users/Administrator/AppData/Roaming/LDtk/settings...
[WARNING] 2023-09-30 10:23:56 -> New settings
[BOOT] 2023-09-30 10:23:56 AppZoomFactor: 1
[BOOT] 2023-09-30 10:23:56 Calling appReady...
[UPDATE] 2023-09-30 10:23:56 Looking for update
[BOOT] 2023-09-30 10:23:59 Start args: path=null levelIndex=null
[BOOT] 2023-09-30 10:23:59 Loading Home...
It never gets past Loading Home just the black screen.
I see nothing wrong in the log š¤ Specifically, nothing really special happens at the point it stops. Do you have anything worth mentioning on your setup? Like a dual GPU as in laptops (eg. Intel + Nvidia), or an app that could interfere with LDtk (antivirus, security app) etc.
I use windows defender...Malwarebytes and tinywall ( turned Malwarebytes off and tinywall to no avail). I ran cpu-z and took a gyazo of my processor and gpu stats. Its a curious glitch. Ty for investigating , I appreciate the feedback.
https://gyazo.com/0e96230557692482058ab1e701e37150
https://gyazo.com/951fb388d1b6909b983caa33d04e0ade
Is there autotiling?
yes
can this work for godot?
Yes :)
https://ldtk.io/api/#Godot
Can this be used with Isometric tiles? My guess is no.
Quick question, everytime I save my level the memory of the LDtk Helper process on M1 mac goes up 1GB. Starts at about 1GB then goes up each save. The total of the LDtk directory isn't large, maybe 5MB. I use about 12 layers. I have 2 levels in world @ 4096 pixels. It's starting to chug though. Any ideas?
Thanks for the update!! Super!
H U G E
Great product, is it possible to export specific layers though?
You can use either the Super Simple Export option from the Project settings panel (P shortcut), or enable PNG exports.
I had a go, how would I leave some layers out of the all in one png export though?
Great asset! I think decorator layers where you can select a portion of a tilemaps or take any individual image and stamp it at ANY position (not locked to the tileset) would catapult the versatility of the tool!
I love it, works PERFECT!!! Except one thing...
You need to add tile collisions. Like the ones in tiled, where you can select certain tiles, give then a tag, draw a custom hitbox(if the default square wont cut it), and export into the game platform, where it will detect and use the collisions.
Here is the gdevelop forum on this, in case you want proof people need this
Yes!! We need this T_T
I've always enjoyed using LDTK. I even used it in my last game Katkoot and I'm using it for my current project. It perfectly filled the gap of not having a level editor while working with LĆVE with ease, unlike Tiled which was not so user-friendly.
However, I feel like it misses some tiny features that would make my workflow (and so many others) much easier. Here is a list of the little improvement I would love to see in future versions:
1) Being able to set Coords manually was a big improvement in my opinion, but I think you can push even further by making it that we can move the entities by pixels using arrow keys on keyboard. That would make it much faster to adjust and tweak the position without the need to click on anything. It would be even nicer if you allow us to change the values by simply scrolling with the mouse wheel inside input boxes that can one hold numbers.
2) Instead of representing entities using a rectangle or an icon set, I would love to be able to select an individual image file from my project that isn't a part of any tileset. So, I will be able to create an entity, then select an image from my computer that isn't necessarily used in LDtk or in any of my defined tileset, and use that to represent my entity in the editor.
3) I like the idea of custom commands. However, you can't do much with it in its current state. I would love to be able to insert some values to use as arguments in the defined function. I'm talking about something like how you set the "Default level identifiers". So, I should be able to call commands like "run game --ldtk [LEVEL_INDEX]". Also being able to have multiple custom defined shortcuts for multiple commands would be a nice addition, though not necessarily that useful.
4) Move editor/project settings outside the .ldtk or .json to make it shorter. You can have an additional file for those. You can make it optional to keep it or not in the main file.
Thanks for the feedback! The best way to submit suggestions is using GitHub issues here: https://github.com/deepnight/ldtk/issues
About these points:
this should be fixed at one point, when Iāll complete this issue (because itās somehow related internally): https://github.com/deepnight/ldtk/issues/768
this could totally be done, feel free to submit an issue about this one :)
current custom commands were quickly (and poorly) implemented: it should be reworked for next update, including adding variable arguments.
For now, thereās no plan about moving these settings to another file, as this could break all existing importers easily. Unless the change is really needed, I tend to be very careful about implemented JSON parsing breakers. In this case, I donāt think the benefit would be relevant (weāre talking about removing a few kilobytes at most)
Thanks for the reply! I'm glad to hear that you are already working on those features already.
As for point 2, I've submitted an issue here https://github.com/deepnight/ldtk/issues/842 .
I'm looking forward for an update when ready <3
It's compatible with Game Maker Studio 2?
Yes but with not all features but the essentials one.
Try this one : https://github.com/evolutionleo/LDtkParser
Maybe I'm just dumb, but for me, setting up autotiling for my top down ground tiles with this was like pulling teeth. With Godot and Unity I just drag the tileset in, select the bitmask areas and it's done. Tiled and LDtk feel like prep-heavy workflows in comparison. Maybe I'm wrong?
I downloaded the installer for windows and I got the error message saying "LDtk cannot be closed.", even though I don't have it installed on my computer or opened. I looked at the official LDtk website, and I looked to see if this error message was talked about and solved, I even tried to see if it was the amount of memory on my computer, but I found nothing. How do I fix this?
I'm lost for words... it is too good to be true!
Wow you helped make Dead Cells! Its one of my favorite games of all time!
ehm... can it do, "Undo"?
i tried ctrl + z, it does nothing.
It should, but depends on the context: in a level, yes, in a panel, no. š¤
it doesn't do anything on both level (tilemapping) and panel. Doesn't work on textbox too
I wonder if it's because I'm on linux version
Is there a way to import a .json into gms2 as a room?
It's not so simple but look at this one : https://github.com/Ailwuful/LDtk-Room_builder#readme
what about Godot?
Maybe this is what you are looking for:
https://ldtk.io/api/#Godot
does it work for construct 2
dus it work for gdivelop
Hi! i tried downloading it on my personal computer but my computer is a chromebook is there any way to be available on chromebooks?
Hi, Thereās no Chromebook version yet. I donāt know it well: is it a Linux based platform?
Hi again! it is a Linux based platform. Also thanks for replying i also want to be a indie game developer like you. The first game i played that you created was sabotage
I'm trying to use the program in my pc but stills like that
Yeah I have same thing last year. try change compatibility to Windows Vista Service Pack 2 on properties. if does not work Sry.
Cool, very useful ;)
Is there any chance you'll implement per-layer tinting? My tileset is currently white since I want to tint it procedurally in the game. It would be great to have an option to tint a layer so I can preview what it looks like in-game, though!
My only gripe is that the tile selector expands to cover the currently-edited level even if the tileset is very small, fitting perfectly into the sidebar as-is. It's a minor annoyance, but it does disrupt my thought process when editing. Other than that, this is a really useful tool that I've been enjoying using.
I have a personal question do you like animating if so will you ever make a animating software, anyways keep up the awesome work :D
Can you make games on it or is it just a level designer?
Editor only, exporting to a JSON file in either LDtk or Tilemap's data format.
Windows Smart screen blocked the .exe installer :/ a good option will be a portable exe .... Anyway, I just extracted the exe file and searched the app-64 folder lol
Iām in the process of signing the app (but itās a long & expensive process). In the meanwhile, just click on the āMore Infoā in the Smart screen window, youāll be able to bypass it.
That's what i always do (Bypassing smartscreen, not Signing my apps)
why with both 32bit and 64bit in installer, this is not necessary
can you add a portable version for 64bit only?
thanks
Not necessary for you or for everyone? It's nice to have the choice for those who need it. Just as portable versions are ;)
i don't care about me, i care about useless bandwidth usage, and useless disk operations
don't ship with waste, it's never a good idea, and gives bad impression about the software, when it's too big, it is a sign of incompetence or unnecessary bloat
there are the people who care:
https://rxi.itch.io/tilekit (250kb)
and the people who don't care:
ldtk: 100mb 7z (184mb for x64 unzipped)
So you would like to see 32bit and 64bit separated? Because as I said: someone might want to have 32bit version.
About the size: I'm with you, a lot of applications are way too big for what they do. Especially the ones that ship a whole Browser to execute themselves ...
Its a sad trend ... But in this case: one version: ~ 75mb second version: 30mb more - should be ok, if you can handle the 75mb download.
Right now, for faster distribution reasons, I only maintain an hybrid 32/64 bits version to maximize support for everyone. It shouldnāt affect anyone, except for some extra 30mb to download, which isā¦ well, not that much imho.
About a portable build, yes, Iād like to have one at some point, but I need to upgrade my auto-updater to support that :)
ok so you don't care at all about the users, that's disappointing to hear only just to save 5 seconds writing the script to zip builds separately, and itch.io has API to upload releases btw, so you could save even more time if you wanted, but i doubt you want, seems you are fine with bloatware (i wouldn't mind if it was 2x 250kb like tilekit i mentioned in other comment, but here it's electron.. but that itself is an other problem, let's stick to the 2x download size issue for now)
> It shouldnāt affect anyone, except for some extra 30mb to download, which is… well, not that much imho.
selfishness
each 7zip is 50mb, so you waste 50mb shipping useless bloat
50mb for one user
let's say 100k people download your app
that's 5TB of bandwidth wasted, and it's 5TB of avoidable IO operation on people's SSDs
devs need to respect me and my PC
Maybe he didn't know about that? Maybe there is some other reason? Maybe he is open to this suggestion if it's delivered in a more civilized manner?
Yes, saving space is nice, but I really appreciate that he supports both versions - even if I personally would not use 32bit version. But thanks that its there!
Maybe you need to respect devs providing FOSS a little more?
The combined installer is perfectly economically reasonable. But if the solution to your annoyance would take "5 seconds" to implement as you describe - go submit the damn PR - you've spent many times that in condescending tirades in the comments here.
> devs need to respect me and my PC
Just the opposite - no one has less of a prerogative to support "problem users" than an open source developer. Were I the maintainer, I would not be inclined to support your request for it's own sake unless you were financially supporting the project or others also raised the issue.
Very cool! Can't wait to take it or a spin. Thanks for making this FOSS! <3