bevyecsldtk

January 22, 2026 ยท View on GitHub

crates.io docs.rs crates.io MIT/Apache 2.0 Bevy tracking CI

bevy_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.

platformer-example

cargo run --example platformer --release

Features

  • Support for all layer types
  • Support for loading external levels
  • Hot reloading
  • Solutions for easily loading/unloading levels, changing levels, loading level neighbors...
  • Low-boilerplate solutions for spawning bundles for LDtk Entities and IntGrid tiles using derive macros (other options available)
  • serde types for LDtk based off LDtk's QuickType loader, but with several QoL improvements
  • Support for Wasm (and tile spacing) through "atlas" feature

Documentation

Documentation for this plugin is available in two main places.

In the book, the following chapters are good jumping-off points for beginners:

Cargo examples are also available in this repository:

$ cargo run --example example-name

Compatibility

bevybevy_ecs_tilemapLDtkbevy_ecs_ldtk
0.180.181.5.30.14
0.170.171.5.30.13
0.160.161.5.30.12
0.150.151.5.30.11
0.140.141.5.30.10
0.120.121.5.30.9
0.110.111.3.30.8
0.100.101.10.7
0.100.101.10.6
0.90.91.10.5
0.80.71.10.4
0.70.61.10.3
0.60.50.90.2
0.60.50.90.1

Asset Credits