Skip to content
Plugins (183)

ldtk

stable

LDtk level editor project file loader and accessor for reading levels, layers, entities, tilesets, and tile data from LDtk JSON files.

use plugin ldtk::{load, get_levels, get_level, …}
12 functions Game
/ filter jk navigate Esc clear
Functions (12)
  1. load Load an LDtk project file from disk
  2. get_levels Get all levels from a project
  3. get_level Get a level by index
  4. get_layer_instances Get all layer instances for a level
  5. get_entities Get entity instances from a layer
  6. get_int_grid Get integer grid values from a layer
  7. level_count Count levels in a project
  8. get_level_by_name Find a level by its identifier string
  9. get_tilesets Get tileset definitions from a project
  10. get_grid_size Get the grid size of a layer
  11. get_auto_layer_tiles Get auto-layer tile instances
  12. get_layer_type Get the type string of a layer

Load an LDtk project file from disk

Loads an LDtk .ldtk JSON project file from disk and returns its full contents as a nested table. This is the starting point for all other LDtk functions.

use plugin ldtk::{load}

let project = load("assets/world.ldtk")

Get all levels from a project

Returns the array of all level objects from a loaded LDtk project table. Each element is a level table containing identifier, layerInstances, and other LDtk level fields.

use plugin ldtk::{load, get_levels}

let project = load("assets/world.ldtk")
let levels = get_levels(project)
print("Level count: {levels}")

Get a level by index

Returns a single level by zero-based index. Returns nil if the index is out of range.

use plugin ldtk::{load, get_level}

let project = load("assets/world.ldtk")
let first = get_level(project, 0)
print("First level: {first["identifier"]}")

Get all layer instances for a level

Returns the array of layer instances for a given level table. Each layer instance contains type, grid size, entity or tile data depending on its type.

use plugin ldtk::{load, get_level, get_layer_instances}

let project = load("assets/world.ldtk")
let level = get_level(project, 0)
let layers = get_layer_instances(level)

Get entity instances from a layer

Returns the entityInstances array from an Entities-type layer. Each entry contains the entity identifier, position, fields, and other LDtk entity data.

use plugin ldtk::{load, get_level, get_layer_instances, get_entities}

let project = load("assets/world.ldtk")
let level = get_level(project, 0)
let layers = get_layer_instances(level)
let entities = get_entities(layers[1])

Get integer grid values from a layer

Returns the intGridCsv array from an IntGrid-type layer. Values are integers representing the cell types defined in the LDtk project.

use plugin ldtk::{load, get_level, get_layer_instances, get_int_grid}

let project = load("assets/world.ldtk")
let level = get_level(project, 0)
let layers = get_layer_instances(level)
let grid = get_int_grid(layers[1])
print("Grid cells: {grid}")

Count levels in a project

Returns the total number of levels in a loaded project. Equivalent to checking the length of get_levels.

use plugin ldtk::{load, level_count}

let project = load("assets/world.ldtk")
let n = level_count(project)
print("Total levels: {n}")

Find a level by its identifier string

Finds and returns the level whose identifier matches name. Returns nil if no level with that name exists.

use plugin ldtk::{load, get_level_by_name}

let project = load("assets/world.ldtk")
let boss_room = get_level_by_name(project, "BossRoom")
if boss_room != nil {
  print("Found boss room")
}

Get tileset definitions from a project

Returns the array of tileset definitions from defs.tilesets in the project. Each tileset contains the path, grid size, tile count, and other metadata.

use plugin ldtk::{load, get_tilesets}

let project = load("assets/world.ldtk")
let tilesets = get_tilesets(project)
print("Tilesets: {tilesets}")

Get the grid size of a layer

Returns the __gridSize value from a layer instance table (the size of one grid cell in pixels). Returns nil if the field is absent.

use plugin ldtk::{load, get_level, get_layer_instances, get_grid_size}

let project = load("assets/world.ldtk")
let level = get_level(project, 0)
let layers = get_layer_instances(level)
let size = get_grid_size(layers[1])
print("Grid size: {size}px")

Get auto-layer tile instances

Returns the autoLayerTiles array from an AutoLayer-type layer. Each entry describes a tile's source rect, position, and flip flags.

use plugin ldtk::{load, get_level, get_layer_instances, get_auto_layer_tiles}

let project = load("assets/world.ldtk")
let level = get_level(project, 0)
let layers = get_layer_instances(level)
let tiles = get_auto_layer_tiles(layers[1])

Get the type string of a layer

Returns the __type string from a layer instance (e.g. "Tiles", "IntGrid", "Entities", "AutoLayer").

use plugin ldtk::{load, get_level, get_layer_instances, get_layer_type}

let project = load("assets/world.ldtk")
let level = get_level(project, 0)
let layers = get_layer_instances(level)
let layer_type = get_layer_type(layers[1])
print("Layer type: {layer_type}")

Search Zolo

9 results

en