bevy_ecs_ldtkbevy_ecs_ldtk is an ECS-friendly LDtk plugin for Bevy.
It allows you to use LDtk projects as an asset, spawn levels, and insert bevy components/bundles on LDtk entities/tiles.
This plugin is ECS-friendly, partly for its internal usage of ECS that provides extra functionality to users, and partly for its usage of bevy_ecs_tilemap for rendering tilemaps.
This is all behind an ergonomic API, providing low-boilerplate solutions to common use cases.
For less common use cases, strategies that leverage this plugin's ECS constructs are also available.

cargo run --example platformer --release
serde types for LDtk based off LDtk's QuickType
loader, but with several QoL
improvementsDocumentation for this plugin is available in two main places.
- API reference on docs.rs
- Tutorials, Explanation, and Guides in the bevy_ecs_ldtk book
In the book, the following chapters are good jumping-off points for beginners: - Tile-based Game tutorial - Level Selection explanation - Game Logic Integration explanation
Cargo examples are also available in this repository:
$ cargo run --example example-name
| bevy | bevy_ecs_tilemap | LDtk | bevy_ecs_ldtk |
|---|---|---|---|
| 0.19 | 0.19 | 1.5.3 | 0.15 |
| 0.18 | 0.18 | 1.5.3 | 0.14 |
| 0.17 | 0.17 | 1.5.3 | 0.13 |
| 0.16 | 0.16 | 1.5.3 | 0.12 |
| 0.15 | 0.15 | 1.5.3 | 0.11 |
| 0.14 | 0.14 | 1.5.3 | 0.10 |
| 0.12 | 0.12 | 1.5.3 | 0.9 |
| 0.11 | 0.11 | 1.3.3 | 0.8 |
| 0.10 | 0.10 | 1.1 | 0.7 |
| 0.10 | 0.10 | 1.1 | 0.6 |
| 0.9 | 0.9 | 1.1 | 0.5 |
| 0.8 | 0.7 | 1.1 | 0.4 |
| 0.7 | 0.6 | 1.1 | 0.3 |
| 0.6 | 0.5 | 0.9 | 0.2 |
| 0.6 | 0.5 | 0.9 | 0.1 |
$ claude mcp add bevy_ecs_ldtk \
-- python -m otcore.mcp_server <graph>