This complex section isn’t meant to be used by game devs at all, as these rules are
completely resolved internally by the editor before any saving. You should just ignore
this part.
If you’re writing your own LDtk importer, you should probably just ignore most stuff in
the defs
section, as it contains data that are mostly important to the editor. To keep
you away from the defs
section and avoid some unnecessary JSON parsing, important data
from definitions is often duplicated in fields prefixed with a double underscore (eg.
__identifier
or __type
). The 2 only definition types you might need here are
Tilesets and Enums.
In a tileset definition, enum based tag infos
This section is mostly only intended for the LDtk editor app itself. You can safely
ignore it.
This object is not actually used by LDtk. It ONLY exists to force explicit references to
all types, to make sure QuickType finds them and integrate all of them. Otherwise,
Quicktype will drop types that are not explicitely used.
This object is just a grid-based coordinate used in Field values.
IntGrid value definition
IntGrid value group definition
IntGrid value instance
This file is a JSON schema of files created by LDtk level editor
https://ldtk.io.
This section contains all the level data. It can be found in 2 distinct forms, depending
on Project current settings: - If “Separate level files” is disabled (default):
full level data is embedded inside the main Project JSON file, - If “Separate level
files” is enabled: level data is stored in separate standalone .ldtkl
files (one
per level). In this case, the main Project JSON file will still contain most level data,
except heavy sections, like the layerInstances
array (which will be null). The
externalRelPath
string points to the ldtkl
file. A ldtkl
file is just a JSON file
containing exactly what is described below.
Level background image position info
Nearby level info
This object describes the “location” of an Entity instance in the project worlds.
In a tileset definition, user defined meta-data of a tile.
This structure represents a single tile from a given Tileset.
The Tileset
definition is the most important part among project definitions. It
contains some extra informations about each integrated tileset. If you only had to parse
one definition section, that would be the one.
This object represents a custom sub rectangle in a Tileset image.
Possible values: Any
, OnlySame
, OnlyTags
, OnlySpecificEntity
Checker mode Possible values: None
, Horizontal
, Vertical
Possible values: Hidden
, ValueOnly
, NameAndValue
, EntityTile
, LevelTile
,
Points
, PointStar
, PointPath
, PointPathLoop
, RadiusPx
, RadiusGrid
,
ArrayCountWithLabel
, ArrayCountNoLabel
, RefLinkBetweenPivots
,
RefLinkBetweenCenters
Possible values: Above
, Center
, Beneath
Possible values: ZigZag
, StraightArrow
, CurvedArrow
, ArrowsLine
, DashedLine
Naming convention for Identifiers (first-letter uppercase, full uppercase etc.) Possible
values: Capitalize
, Uppercase
, Lowercase
, Free
“Image export” option when saving project. Possible values: None
, OneImagePerLayer
,
OneImagePerLevel
, LayersAndLevels
Possible values: DiscardOldOnes
, PreventAdding
, MoveLastOne
If TRUE, the maxCount is a “per world” limit, if FALSE, it’s a “per level”. Possible
values: PerLayer
, PerLevel
, PerWorld
Possible values: Rectangle
, Ellipse
, Tile
, Cross
Defines how tileIds array is used Possible values: Single
, Stamp
An enum describing how the the Entity tile is rendered inside the Entity bounds. Possible
values: Cover
, FitInside
, Repeat
, Stretch
, FullSizeCropped
,
FullSizeUncropped
, NineSlice
Type of the layer as Haxe Enum Possible values: IntGrid
, Entities
, Tiles
,
AutoLayer
Possible values: Manual
, AfterLoad
, BeforeSave
, AfterSave