JSON Map Format¶
Tiled can export maps as JSON files. To do so, simply select “File >
Export As” and select the JSON file type. You can export json from the
command line with the --export-map
option.
The fields found in the JSON format differ slightly from those in the TMX Map Format, but the meanings should remain the same.
The following fields can be found in a Tiled JSON file:
Map¶
Field | Type | Description |
---|---|---|
backgroundcolor | string | Hex-formatted color (#RRGGBB or #AARRGGBB) (optional) |
height | int | Number of tile rows |
hexsidelength | int | Length of the side of a hex tile in pixels |
infinite | bool | Whether the map has infinite dimensions |
layers | array | Array of Layers |
nextlayerid | int | Auto-increments for each layer |
nextobjectid | int | Auto-increments for each placed object |
orientation | string | orthogonal , isometric , staggered or
hexagonal |
properties | array | A list of properties (name, value, type). |
renderorder | string | Rendering direction (orthogonal maps only) |
staggeraxis | string | x or y (staggered / hexagonal maps only) |
staggerindex | string | odd or even (staggered / hexagonal maps only) |
tiledversion | string | The Tiled version used to save the file |
tileheight | int | Map grid height |
tilesets | array | Array of Tilesets |
tilewidth | int | Map grid width |
type | string | map (since 1.0) |
version | number | The JSON format version |
width | int | Number of tile columns |
Map Example¶
{
"backgroundcolor":"#656667",
"height":4,
"layers":[ ],
"nextobjectid":1,
"orientation":"orthogonal",
"properties":[
{
"name":"mapProperty1",
"type":"one",
"value":"string"
},
{
"name":"mapProperty2",
"type":"two",
"value":"string"
}],
"renderorder":"right-down",
"tileheight":32,
"tilesets":[ ],
"tilewidth":32,
"version":1,
"tiledversion":"1.0.3",
"width":4
}
Layer¶
Field | Type | Description |
---|---|---|
chunks | array | Array of chunks (optional). tilelayer
only. |
compression | string | zlib , gzip or empty (default). tilelayer only. |
data | array or string | Array of unsigned int (GIDs) or base64-encoded
data. tilelayer only. |
draworder | string | topdown (default) or index . objectgroup only. |
encoding | string | csv (default) or base64`. ``tilelayer only. |
height | int | Row count. Same as map height for fixed-size maps. |
id | int | Incremental id - unique across all layers |
image | string | Image used by this layer. imagelayer only. |
layers | array | Array of layers. group on |
name | string | Name assigned to this layer |
objects | object | Array of objects. objectgroup only. |
offsetx | double | Horizontal layer offset in pixels (default: 0) |
offsety | double | Vertical layer offset in pixels (default: 0) |
opacity | double | Value between 0 and 1 |
properties | array | A list of properties (name, value, type). |
transparentcolor | string | Hex-formatted color (#RRGGBB) (optional, imagelayer only |
type | string | tilelayer , objectgroup , imagelayer or group |
visible | bool | Whether layer is shown or hidden in editor |
width | int | Column count. Same as map width for fixed-size maps. |
x | int | Horizontal layer offset in tiles. Always 0. |
y | int | Vertical layer offset in tiles. Always 0. |
Tile Layer Example¶
{
"data":[1, 2, 1, 2, 3, 1, 3, 1, 2, 2, 3, 3, 4, 4, 4, 1],
"height":4,
"name":"ground",
"opacity":1,
"properties":[
{
"name":"tileLayerProp",
"type":"int",
"value":1
}],
"type":"tilelayer",
"visible":true,
"width":4,
"x":0,
"y":0
}
Object Layer Example¶
{
"draworder":"topdown",
"height":0,
"name":"people",
"objects":[ ],
"opacity":1,
"properties":[
{
"name":"layerProp1",
"type":"string",
"value":"someStringValue"
}],
"type":"objectgroup",
"visible":true,
"width":0,
"x":0,
"y":0
}
Chunk¶
Chunks are used to store the tile layer data for infinite maps.
Field | Type | Description |
---|---|---|
data | array or string | Array of unsigned int (GIDs) or
base64-encoded data |
height | int | Height in tiles |
width | int | Width in tiles |
x | int | X coordinate in tiles |
y | int | Y coordinate in tiles |
Chunk Example¶
{
"data":[1, 2, 1, 2, 3, 1, 3, 1, 2, 2, 3, 3, 4, 4, 4, 1, ...],
"height":16,
"width":16,
"x":0,
"y":-16,
}
Object¶
Field | Type | Description |
---|---|---|
ellipse | bool | Used to mark an object as an ellipse |
gid | int | GID, only if object comes from a Tilemap |
height | double | Height in pixels. Ignored if using a gid. |
id | int | Incremental id - unique across all objects |
name | string | String assigned to name field in editor |
point | bool | Used to mark an object as a point |
polygon | array | A list of x,y coordinates in pixels |
polyline | array | A list of x,y coordinates in pixels |
properties | array | A list of properties (name, value, type) |
rotation | double | Angle in degrees clockwise |
template | string | Reference to a template file, in case object is a template instance |
text | object | String key-value pairs |
type | string | String assigned to type field in editor |
visible | bool | Whether object is shown in editor. |
width | double | Width in pixels. Ignored if using a gid. |
x | double | X coordinate in pixels |
y | double | Y coordinate in pixels |
Object Example¶
{
"gid":5,
"height":0,
"id":1,
"name":"villager",
"properties":[
{
"name":"hp",
"type":"int",
"value":12
}],
"rotation":0,
"type":"npc",
"visible":true,
"width":0,
"x":32,
"y":32
}
Ellipse Example¶
{
"ellipse":true,
"height":152,
"id":13,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":248,
"x":560,
"y":808
}
Rectangle Example¶
{
"height":184,
"id":14,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":368,
"x":576,
"y":584
}
Point Example¶
{
"point":true,
"height":0,
"id":20,
"name":"",
"rotation":0,
"type":"",
"visible":true,
"width":0,
"x":220,
"y":350
}
Polygon Example¶
{
"height":0,
"id":15,
"name":"",
"polygon":[
{
"x":0,
"y":0
},
{
"x":152,
"y":88
},
{
"x":136,
"y":-128
},
{
"x":80,
"y":-280
},
{
"x":16,
"y":-288
}],
"rotation":0,
"type":"",
"visible":true,
"width":0,
"x":-176,
"y":432
}
Polyline Example¶
{
"height":0,
"id":16,
"name":"",
"polyline":[
{
"x":0,
"y":0
},
{
"x":248,
"y":-32
},
{
"x":376,
"y":72
},
{
"x":544,
"y":288
},
{
"x":656,
"y":120
},
{
"x":512,
"y":0
}],
"rotation":0,
"type":"",
"visible":true,
"width":0,
"x":240,
"y":88
}
Text Example¶
{
"height":19,
"id":15,
"name":"",
"text":
{
"text":"Hello World",
"wrap":true
},
"rotation":0,
"type":"",
"visible":true,
"width":248,
"x":48,
"y":136
}
Tileset¶
Field | Type | Description |
---|---|---|
columns | int | The number of tile columns in the tileset |
firstgid | int | GID corresponding to the first tile in the set |
grid | object | See <grid> (optional) |
image | string | Image used for tiles in this set |
imagewidth | int | Width of source image in pixels |
imageheight | int | Height of source image in pixels |
margin | int | Buffer between image edge and first tile (pixels) |
name | string | Name given to this tileset |
properties | array | A list of properties (name, value, type). |
spacing | int | Spacing between adjacent tiles in image (pixels) |
terrains | array | Array of Terrains (optional) |
tilecount | int | The number of tiles in this tileset |
tileheight | int | Maximum height of tiles in this set |
tileoffset | object | See <tileoffset> (optional) |
tiles | array | Array of Tiles (optional) |
tilewidth | int | Maximum width of tiles in this set |
transparentcolor | string | Hex-formatted color (#RRGGBB) (optional) |
type | string | tileset (for tileset files, since 1.0) |
wangsets | array | Array of Wang sets (since 1.1.5) |
Tileset Example¶
{
"columns":19,
"firstgid":1,
"image":"..\/image\/fishbaddie_parts.png",
"imageheight":480,
"imagewidth":640,
"margin":3,
"name":"",
"properties":[
{
"name":"myProperty1",
"type":"string",
"value":"myProperty1_value"
}],
"spacing":1,
"tilecount":266,
"tileheight":32,
"tilewidth":32
}
Tile (Definition)¶
Field | Type | Description |
---|---|---|
animation | array | Array of Frames |
id | int | Local ID of the tile |
image | string | Image representing this tile (optional) |
imageheight | int | Height of the tile image in pixels |
imagewidth | int | Width of the tile image in pixels |
objectgroup | Layer | Layer with type objectgroup (optional) |
properties | array | A list of properties (name, value, type) |
terrain | array | Index of terrain for each corner of tile |
type | string | The type of the tile (optional) |
A tileset that associates information with each tile, like its image
path or terrain type, may include a tiles
array property. Each tile
has an id
property, which specifies the local ID within the tileset.
For the terrain information, each value is a length-4 array where each element is the index of a terrain on one corner of the tile. The order of indices is: top-left, top-right, bottom-left, bottom-right.
Example:
"tiles":[
{
"id":0,
"properties":[
{
"name":"myProperty1",
"type":"string",
"value":"myProperty1_value"
}],
"terrain":[0, 0, 0, 0]
},
{
"id":11,
"properties":[
{
"name":"myProperty2",
"type":"string",
"value":"myProperty2_value"
}],
"terrain":[0, 1, 0, 1]
},
{
"id":12,
"properties":[
{
"name":"myProperty3",
"type":"string",
"value":"myProperty3_value"
}],
"terrain":[1, 1, 1, 1]
}
]
Frame¶
Field | Type | Description |
---|---|---|
duration | int | Frame duration in milliseconds |
tileid | int | Local tile ID representing this frame |
Terrain¶
Field | Type | Description |
---|---|---|
name | string | Name of terrain |
tile | int | Local ID of tile representing terrain |
Example:
"terrains":[
{
"name":"ground",
"tile":0
},
{
"name":"chasm",
"tile":12
},
{
"name":"cliff",
"tile":36
}],
Wang Set¶
Field | Type | Description |
---|---|---|
cornercolors | array | Array of Wang colors |
edgecolors | array | Array of Wang colors |
name | string | Name of the Wang set |
tile | int | Local ID of tile representing the Wang set |
wangtiles | array | Array of Wang tiles |
Wang Color¶
Field | Type | Description |
---|---|---|
color | string | Hex-formatted color (#RRGGBB or #AARRGGBB) |
name | string | Name of the Wang color |
probability | double | Probability used when randomizing |
tile | int | Local ID of tile representing the Wang color |
Example:
{
"color": "#d31313",
"name": "Rails",
"probability": 1,
"tile": 18
}
Wang Tile¶
Field | Type | Description |
---|---|---|
dflip | bool | Tile is flipped diagonally |
hflip | bool | Tile is flipped horizontally |
tileid | int | Local ID of tile |
vflip | bool | Tile is flipped vertically |
wangid | array | Array of Wang color indexes (uchar[8] ) |
Example:
{
"dflip": false,
"hflip": false,
"tileid": 0,
"vflip": false,
"wangid": [2, 0, 1, 0, 1, 0, 2, 0]
}
Object Template¶
An object template is written to its own file and referenced by any instances of that template.
Field | Type | Description |
---|---|---|
type | string | template |
tileset | Tileset | External tileset used by the template (optional) |
object | Object | The object instantiated by this template |
Changelog¶
Tiled 1.2¶
- Added
nextlayerid
to the Map object. - Added
id
to the Layer object. - The tiles in a Tileset are now stored as an array instead
of an object. Previously the tile IDs were stored as string keys of
the “tiles” object, now they are stored as
id
property of each Tile object. - Custom tile properties are now stored within each
Tile instead of being included as
tileproperties
in the Tileset object. - Custom properties are now stored in an array instead of an object
where the property names were the keys. Each property is now an object
that stores the name, type and value of the property. The separate
propertytypes
andtilepropertytypes
attributes have been removed.
Tiled 1.1¶
- Added a chunked data format, currently used for infinite maps.
- Templates were added. Templates can be stored as JSON files with an Object Template object.
- Tilesets can now contain Wang tiles. They are saved in the new Wang Set object (since Tiled 1.1.5).