1JSON Map Format 2=============== 3 4Tiled can export maps as JSON files. To do so, simply select "File > 5Export As" and select the JSON file type. You can export json from the 6command line with the ``--export-map`` option. 7 8The fields found in the JSON format differ slightly from those in the 9:doc:`tmx-map-format`, but the meanings should remain the same. 10 11The following fields can be found in a Tiled JSON file: 12 13.. _json-map: 14 15Map 16--- 17 18.. csv-table:: 19 :header: Field, Type, Description 20 :widths: 1, 1, 4 21 22 backgroundcolor, string, "Hex-formatted color (#RRGGBB or #AARRGGBB) (optional)" 23 compressionlevel, int, "The compression level to use for tile layer data (defaults to -1, which means to use the algorithm default)" 24 height, int, "Number of tile rows" 25 hexsidelength, int, "Length of the side of a hex tile in pixels (hexagonal maps only)" 26 infinite, bool, "Whether the map has infinite dimensions" 27 layers, array, "Array of :ref:`Layers <json-layer>`" 28 nextlayerid, int, "Auto-increments for each layer" 29 nextobjectid, int, "Auto-increments for each placed object" 30 orientation, string, "``orthogonal``, ``isometric``, ``staggered`` or ``hexagonal``" 31 properties, array, "Array of :ref:`Properties <json-property>`" 32 renderorder, string, "``right-down`` (the default), ``right-up``, ``left-down`` or ``left-up`` (currently only supported for orthogonal maps)" 33 staggeraxis, string, "``x`` or ``y`` (staggered / hexagonal maps only)" 34 staggerindex, string, "``odd`` or ``even`` (staggered / hexagonal maps only)" 35 tiledversion, string, "The Tiled version used to save the file" 36 tileheight, int, "Map grid height" 37 tilesets, array, "Array of :ref:`Tilesets <json-tileset>`" 38 tilewidth, int, "Map grid width" 39 type, string, "``map`` (since 1.0)" 40 version, string, "The JSON format version (previously a number, saved as string since 1.6)" 41 width, int, "Number of tile columns" 42 43Map Example 44~~~~~~~~~~~ 45 46.. code:: json 47 48 { 49 "backgroundcolor":"#656667", 50 "height":4, 51 "layers":[ ], 52 "nextobjectid":1, 53 "orientation":"orthogonal", 54 "properties":[ 55 { 56 "name":"mapProperty1", 57 "type":"string", 58 "value":"one" 59 }, 60 { 61 "name":"mapProperty2", 62 "type":"string", 63 "value":"two" 64 }], 65 "renderorder":"right-down", 66 "tileheight":32, 67 "tilesets":[ ], 68 "tilewidth":32, 69 "version":1, 70 "tiledversion":"1.0.3", 71 "width":4 72 } 73 74.. _json-layer: 75 76Layer 77----- 78 79.. csv-table:: 80 :header: Field, Type, Description 81 :widths: 1, 1, 4 82 83 chunks, array, "Array of :ref:`chunks <json-chunk>` (optional). ``tilelayer`` only." 84 compression, string, "``zlib``, ``gzip``, ``zstd`` (since Tiled 1.3) or empty (default). ``tilelayer`` only." 85 data, array or string, "Array of ``unsigned int`` (GIDs) or base64-encoded data. ``tilelayer`` only." 86 draworder, string, "``topdown`` (default) or ``index``. ``objectgroup`` only." 87 encoding, string, "``csv`` (default) or ``base64``. ``tilelayer`` only." 88 height, int, "Row count. Same as map height for fixed-size maps." 89 id, int, "Incremental ID - unique across all layers" 90 image, string, "Image used by this layer. ``imagelayer`` only." 91 layers, array, "Array of :ref:`layers <json-layer>`. ``group`` only." 92 name, string, "Name assigned to this layer" 93 objects, array, "Array of :ref:`objects <json-object>`. ``objectgroup`` only." 94 offsetx, double, "Horizontal layer offset in pixels (default: 0)" 95 offsety, double, "Vertical layer offset in pixels (default: 0)" 96 opacity, double, "Value between 0 and 1" 97 parallaxx, double, "Horizontal :ref:`parallax factor <parallax-factor>` for this layer (default: 1). (since Tiled 1.5)" 98 parallaxy, double, "Vertical :ref:`parallax factor <parallax-factor>` for this layer (default: 1). (since Tiled 1.5)" 99 properties, array, "Array of :ref:`Properties <json-property>`" 100 startx, int, "X coordinate where layer content starts (for infinite maps)" 101 starty, int, "Y coordinate where layer content starts (for infinite maps)" 102 tintcolor, string, "Hex-formatted :ref:`tint color <tint-color>` (#RRGGBB or #AARRGGBB) that is multiplied with any graphics drawn by this layer or any child layers (optional)." 103 transparentcolor, string, "Hex-formatted color (#RRGGBB) (optional). ``imagelayer`` only." 104 type, string, "``tilelayer``, ``objectgroup``, ``imagelayer`` or ``group``" 105 visible, bool, "Whether layer is shown or hidden in editor" 106 width, int, "Column count. Same as map width for fixed-size maps." 107 x, int, "Horizontal layer offset in tiles. Always 0." 108 y, int, "Vertical layer offset in tiles. Always 0." 109 110Tile Layer Example 111~~~~~~~~~~~~~~~~~~ 112 113.. code:: json 114 115 { 116 "data":[1, 2, 1, 2, 3, 1, 3, 1, 2, 2, 3, 3, 4, 4, 4, 1], 117 "height":4, 118 "name":"ground", 119 "opacity":1, 120 "properties":[ 121 { 122 "name":"tileLayerProp", 123 "type":"int", 124 "value":1 125 }], 126 "type":"tilelayer", 127 "visible":true, 128 "width":4, 129 "x":0, 130 "y":0 131 } 132 133Object Layer Example 134~~~~~~~~~~~~~~~~~~~~ 135 136.. code:: json 137 138 { 139 "draworder":"topdown", 140 "height":0, 141 "name":"people", 142 "objects":[ ], 143 "opacity":1, 144 "properties":[ 145 { 146 "name":"layerProp1", 147 "type":"string", 148 "value":"someStringValue" 149 }], 150 "type":"objectgroup", 151 "visible":true, 152 "width":0, 153 "x":0, 154 "y":0 155 } 156 157.. _json-chunk: 158 159Chunk 160----- 161 162Chunks are used to store the tile layer data for 163:doc:`infinite maps </manual/using-infinite-maps>`. 164 165.. csv-table:: 166 :header: Field, Type, Description 167 :widths: 1, 1, 4 168 169 data, array or string, "Array of ``unsigned int`` (GIDs) or base64-encoded data" 170 height, int, "Height in tiles" 171 width, int, "Width in tiles" 172 x, int, "X coordinate in tiles" 173 y, int, "Y coordinate in tiles" 174 175Chunk Example 176~~~~~~~~~~~~~ 177 178.. code:: json 179 180 { 181 "data":[1, 2, 1, 2, 3, 1, 3, 1, 2, 2, 3, 3, 4, 4, 4, 1, ...], 182 "height":16, 183 "width":16, 184 "x":0, 185 "y":-16, 186 } 187 188.. _json-object: 189 190Object 191------ 192 193.. csv-table:: 194 :header: Field, Type, Description 195 :widths: 1, 1, 4 196 197 ellipse, bool, "Used to mark an object as an ellipse" 198 gid, int, "Global tile ID, only if object represents a tile" 199 height, double, "Height in pixels." 200 id, int, "Incremental ID, unique across all objects" 201 name, string, "String assigned to name field in editor" 202 point, bool, "Used to mark an object as a point" 203 polygon, array, "Array of :ref:`Points <json-point>`, in case the object is a polygon" 204 polyline, array, "Array of :ref:`Points <json-point>`, in case the object is a polyline" 205 properties, array, "Array of :ref:`Properties <json-property>`" 206 rotation, double, "Angle in degrees clockwise" 207 template, string, "Reference to a template file, in case object is a :doc:`template instance </manual/using-templates>`" 208 text, :ref:`json-object-text`, "Only used for text objects" 209 type, string, "String assigned to type field in editor" 210 visible, bool, "Whether object is shown in editor." 211 width, double, "Width in pixels." 212 x, double, "X coordinate in pixels" 213 y, double, "Y coordinate in pixels" 214 215Object Example 216~~~~~~~~~~~~~~ 217 218.. code:: json 219 220 { 221 "gid":5, 222 "height":0, 223 "id":1, 224 "name":"villager", 225 "properties":[ 226 { 227 "name":"hp", 228 "type":"int", 229 "value":12 230 }], 231 "rotation":0, 232 "type":"npc", 233 "visible":true, 234 "width":0, 235 "x":32, 236 "y":32 237 } 238 239Ellipse Example 240~~~~~~~~~~~~~~~ 241 242.. code:: json 243 244 { 245 "ellipse":true, 246 "height":152, 247 "id":13, 248 "name":"", 249 "rotation":0, 250 "type":"", 251 "visible":true, 252 "width":248, 253 "x":560, 254 "y":808 255 } 256 257Rectangle Example 258~~~~~~~~~~~~~~~~~ 259 260.. code:: json 261 262 { 263 "height":184, 264 "id":14, 265 "name":"", 266 "rotation":0, 267 "type":"", 268 "visible":true, 269 "width":368, 270 "x":576, 271 "y":584 272 } 273 274Point Example 275~~~~~~~~~~~~~ 276 277.. code:: json 278 279 { 280 "point":true, 281 "height":0, 282 "id":20, 283 "name":"", 284 "rotation":0, 285 "type":"", 286 "visible":true, 287 "width":0, 288 "x":220, 289 "y":350 290 } 291 292Polygon Example 293~~~~~~~~~~~~~~~ 294 295.. code:: json 296 297 { 298 "height":0, 299 "id":15, 300 "name":"", 301 "polygon":[ 302 { 303 "x":0, 304 "y":0 305 }, 306 { 307 "x":152, 308 "y":88 309 }, 310 { 311 "x":136, 312 "y":-128 313 }, 314 { 315 "x":80, 316 "y":-280 317 }, 318 { 319 "x":16, 320 "y":-288 321 }], 322 "rotation":0, 323 "type":"", 324 "visible":true, 325 "width":0, 326 "x":-176, 327 "y":432 328 } 329 330Polyline Example 331~~~~~~~~~~~~~~~~ 332 333.. code:: json 334 335 { 336 "height":0, 337 "id":16, 338 "name":"", 339 "polyline":[ 340 { 341 "x":0, 342 "y":0 343 }, 344 { 345 "x":248, 346 "y":-32 347 }, 348 { 349 "x":376, 350 "y":72 351 }, 352 { 353 "x":544, 354 "y":288 355 }, 356 { 357 "x":656, 358 "y":120 359 }, 360 { 361 "x":512, 362 "y":0 363 }], 364 "rotation":0, 365 "type":"", 366 "visible":true, 367 "width":0, 368 "x":240, 369 "y":88 370 } 371 372Text Example 373~~~~~~~~~~~~ 374 375.. code:: json 376 377 { 378 "height":19, 379 "id":15, 380 "name":"", 381 "text": 382 { 383 "text":"Hello World", 384 "wrap":true 385 }, 386 "rotation":0, 387 "type":"", 388 "visible":true, 389 "width":248, 390 "x":48, 391 "y":136 392 } 393 394.. _json-object-text: 395 396Text 397---- 398 399.. csv-table:: 400 :header: Field, Type, Description 401 :widths: 1, 1, 4 402 403 bold, bool, "Whether to use a bold font (default: ``false``)" 404 color, string, "Hex-formatted color (#RRGGBB or #AARRGGBB) (default: ``#000000``)" 405 fontfamily, string, "Font family (default: ``sans-serif``)" 406 halign, string, "Horizontal alignment (``center``, ``right``, ``justify`` or ``left`` (default))" 407 italic, bool, "Whether to use an italic font (default: ``false``)" 408 kerning, bool, "Whether to use kerning when placing characters (default: ``true``)" 409 pixelsize, int, "Pixel size of font (default: 16)" 410 strikeout, bool, "Whether to strike out the text (default: ``false``)" 411 text, string, "Text" 412 underline, bool, "Whether to underline the text (default: ``false``)" 413 valign, string, "Vertical alignment (``center``, ``bottom`` or ``top`` (default))" 414 wrap, bool, "Whether the text is wrapped within the object bounds (default: ``false``)" 415 416 417.. _json-tileset: 418 419Tileset 420------- 421 422.. csv-table:: 423 :header: Field, Type, Description 424 :widths: 1, 1, 4 425 426 backgroundcolor, string, "Hex-formatted color (#RRGGBB or #AARRGGBB) (optional)" 427 columns, int, "The number of tile columns in the tileset" 428 firstgid, int, "GID corresponding to the first tile in the set" 429 grid, :ref:`json-tileset-grid`, "(optional)" 430 image, string, "Image used for tiles in this set" 431 imageheight, int, "Height of source image in pixels" 432 imagewidth, int, "Width of source image in pixels" 433 margin, int, "Buffer between image edge and first tile (pixels)" 434 name, string, "Name given to this tileset" 435 objectalignment, string, "Alignment to use for tile objects (``unspecified`` (default), ``topleft``, ``top``, ``topright``, ``left``, ``center``, ``right``, ``bottomleft``, ``bottom`` or ``bottomright``) (since 1.4)" 436 properties, array, "Array of :ref:`Properties <json-property>`" 437 source, string, "The external file that contains this tilesets data" 438 spacing, int, "Spacing between adjacent tiles in image (pixels)" 439 terrains, array, "Array of :ref:`Terrains <json-terrain>` (optional)" 440 tilecount, int, "The number of tiles in this tileset" 441 tiledversion, string, "The Tiled version used to save the file" 442 tileheight, int, "Maximum height of tiles in this set" 443 tileoffset, :ref:`json-tileset-tileoffset`, "(optional)" 444 tiles, array, "Array of :ref:`Tiles <json-tile>` (optional)" 445 tilewidth, int, "Maximum width of tiles in this set" 446 transformations, :ref:`json-tileset-transformations`, "Allowed transformations (optional)" 447 transparentcolor, string, "Hex-formatted color (#RRGGBB) (optional)" 448 type, string, "``tileset`` (for tileset files, since 1.0)" 449 version, string, "The JSON format version (previously a number, saved as string since 1.6)" 450 wangsets, array, "Array of :ref:`Wang sets <json-wangset>` (since 1.1.5)" 451 452Each tileset has a ``firstgid`` (first global ID) property which 453tells you the global ID of its first tile (the one with local 454tile ID 0). This allows you to map the global IDs back to the 455right tileset, and then calculate the local tile ID by 456subtracting the ``firstgid`` from the global tile ID. The first 457tileset always has a ``firstgid`` value of 1. 458 459.. _json-tileset-grid: 460 461Grid 462~~~~ 463 464Specifies common grid settings used for tiles in a tileset. See 465:ref:`tmx-grid` in the TMX Map Format. 466 467.. csv-table:: 468 :header: Field, Type, Description 469 :widths: 1, 1, 4 470 471 height, int, "Cell height of tile grid" 472 orientation, string, "``orthogonal`` (default) or ``isometric``" 473 width, int, "Cell width of tile grid" 474 475.. _json-tileset-tileoffset: 476 477Tile Offset 478~~~~~~~~~~~ 479 480See :ref:`tmx-tileoffset` in the TMX Map Format. 481 482.. csv-table:: 483 :header: Field, Type, Description 484 :widths: 1, 1, 4 485 486 x, int, "Horizontal offset in pixels" 487 y, int, "Vertical offset in pixels (positive is down)" 488 489.. _json-tileset-transformations: 490 491Transformations 492~~~~~~~~~~~~~~~ 493 494See :ref:`tmx-tileset-transformations` in the TMX Map Format. 495 496.. csv-table:: 497 :header: Field, Type, Description 498 :widths: 1, 1, 4 499 500 hflip, bool, "Tiles can be flipped horizontally" 501 vflip, bool, "Tiles can be flipped vertically" 502 rotate, bool, "Tiles can be rotated in 90-degree increments" 503 preferuntransformed, bool, "Whether untransformed tiles remain preferred, otherwise transformed tiles are used to produce more variations" 504 505Tileset Example 506~~~~~~~~~~~~~~~ 507 508.. code:: json 509 510 { 511 "columns":19, 512 "firstgid":1, 513 "image":"..\/image\/fishbaddie_parts.png", 514 "imageheight":480, 515 "imagewidth":640, 516 "margin":3, 517 "name":"", 518 "properties":[ 519 { 520 "name":"myProperty1", 521 "type":"string", 522 "value":"myProperty1_value" 523 }], 524 "spacing":1, 525 "tilecount":266, 526 "tileheight":32, 527 "tilewidth":32 528 } 529 530.. _json-tile: 531 532Tile (Definition) 533~~~~~~~~~~~~~~~~~ 534 535.. csv-table:: 536 :header: Field, Type, Description 537 :widths: 1, 1, 4 538 539 animation, array, "Array of :ref:`Frames <json-frame>`" 540 id, int, "Local ID of the tile" 541 image, string, "Image representing this tile (optional)" 542 imageheight, int, "Height of the tile image in pixels" 543 imagewidth, int, "Width of the tile image in pixels" 544 objectgroup, :ref:`json-layer`, "Layer with type ``objectgroup``, when collision shapes are specified (optional)" 545 probability, double, "Percentage chance this tile is chosen when competing with others in the editor (optional)" 546 properties, array, "Array of :ref:`Properties <json-property>`" 547 terrain, array, "Index of terrain for each corner of tile (optional)" 548 type, string, "The type of the tile (optional)" 549 550A tileset that associates information with each tile, like its image 551path or terrain type, may include a ``tiles`` array property. Each tile 552has an ``id`` property, which specifies the local ID within the tileset. 553 554For the terrain information, each value is a length-4 array where each 555element is the index of a :ref:`terrain <json-terrain>` on one corner 556of the tile. The order of indices is: top-left, top-right, bottom-left, 557bottom-right. 558 559Example: 560 561.. code:: json 562 563 "tiles":[ 564 { 565 "id":0, 566 "properties":[ 567 { 568 "name":"myProperty1", 569 "type":"string", 570 "value":"myProperty1_value" 571 }], 572 "terrain":[0, 0, 0, 0] 573 }, 574 { 575 "id":11, 576 "properties":[ 577 { 578 "name":"myProperty2", 579 "type":"string", 580 "value":"myProperty2_value" 581 }], 582 "terrain":[0, 1, 0, 1] 583 }, 584 { 585 "id":12, 586 "properties":[ 587 { 588 "name":"myProperty3", 589 "type":"string", 590 "value":"myProperty3_value" 591 }], 592 "terrain":[1, 1, 1, 1] 593 } 594 ] 595 596.. _json-frame: 597 598Frame 599~~~~~ 600 601.. csv-table:: 602 :header: Field, Type, Description 603 :widths: 1, 1, 4 604 605 duration, int, "Frame duration in milliseconds" 606 tileid, int, "Local tile ID representing this frame" 607 608.. _json-terrain: 609 610Terrain 611~~~~~~~ 612 613.. csv-table:: 614 :header: Field, Type, Description 615 :widths: 1, 1, 4 616 617 name, string, "Name of terrain" 618 properties, array, "Array of :ref:`Properties <json-property>`" 619 tile, int, "Local ID of tile representing terrain" 620 621Example: 622 623.. code:: json 624 625 "terrains":[ 626 { 627 "name":"ground", 628 "tile":0 629 }, 630 { 631 "name":"chasm", 632 "tile":12 633 }, 634 { 635 "name":"cliff", 636 "tile":36 637 }], 638 639.. _json-wangset: 640 641Wang Set 642~~~~~~~~ 643 644.. csv-table:: 645 :header: Field, Type, Description 646 :widths: 1, 1, 4 647 648 colors, array, "Array of :ref:`Wang colors <json-wangcolor>`" 649 name, string, "Name of the Wang set" 650 properties, array, "Array of :ref:`Properties <json-property>`" 651 tile, int, "Local ID of tile representing the Wang set" 652 wangtiles, array, "Array of :ref:`Wang tiles <json-wangtile>`" 653 654.. _json-wangcolor: 655 656Wang Color 657^^^^^^^^^^ 658 659.. csv-table:: 660 :header: Field, Type, Description 661 :widths: 1, 1, 4 662 663 color, string, "Hex-formatted color (#RRGGBB or #AARRGGBB)" 664 name, string, "Name of the Wang color" 665 probability, double, "Probability used when randomizing" 666 properties, array, "Array of :ref:`Properties <json-property>`" 667 tile, int, "Local ID of tile representing the Wang color" 668 669Example: 670 671.. code:: json 672 673 { 674 "color": "#d31313", 675 "name": "Rails", 676 "probability": 1, 677 "tile": 18 678 } 679 680.. _json-wangtile: 681 682Wang Tile 683^^^^^^^^^ 684 685.. csv-table:: 686 :header: Field, Type, Description 687 :widths: 1, 1, 4 688 689 tileid, int, "Local ID of tile" 690 wangid, array, "Array of Wang color indexes (``uchar[8]``)" 691 692Example: 693 694.. code:: json 695 696 { 697 "tileid": 0, 698 "wangid": [2, 0, 1, 0, 1, 0, 2, 0] 699 } 700 701.. _json-objecttemplate: 702 703Object Template 704--------------- 705 706An object template is written to its own file and referenced by any 707instances of that template. 708 709.. csv-table:: 710 :header: Field, Type, Description 711 :widths: 1, 1, 4 712 713 type, string, "``template``" 714 tileset, :ref:`json-tileset`, "External tileset used by the template (optional)" 715 object, :ref:`json-object`, "The object instantiated by this template" 716 717.. _json-property: 718 719Property 720-------- 721 722.. csv-table:: 723 :header: Field, Type, Description 724 :widths: 1, 1, 4 725 726 name, string, "Name of the property" 727 type, string, "Type of the property (``string`` (default), ``int``, ``float``, ``bool``, ``color`` or ``file`` (since 0.16, with ``color`` and ``file`` added in 0.17))" 728 value, value, "Value of the property" 729 730.. _json-point: 731 732Point 733----- 734 735A point on a polygon or a polyline, relative to the position of the object. 736 737.. csv-table:: 738 :header: Field, Type, Description 739 :widths: 1, 1, 4 740 741 x, double, "X coordinate in pixels" 742 y, double, "Y coordinate in pixels" 743 744Changelog 745--------- 746 747Tiled 1.7 748~~~~~~~~~ 749 750* The :ref:`json-tile` objects in a tileset are no longer always saved with 751 increasing IDs. They are now saved in the display order, which can be changed 752 in Tiled. 753 754Tiled 1.6 755~~~~~~~~~ 756 757* The ``version`` property is now written as a string ("1.6") instead of a 758 number (1.5). 759 760Tiled 1.5 761~~~~~~~~~ 762 763* Unified ``cornercolors`` and ``edgecolors`` properties of :ref:`json-wangset` 764 as the new ``colors`` property. 765 766* :ref:`json-wangcolor` can now store ``properties``. 767 768* Added ``transformations`` property to :ref:`json-tileset` (see 769 :ref:`json-tileset-transformations`). 770 771* Removed ``dflip``, ``hflip`` and ``vflip`` properties from 772 :ref:`json-wangtile` (no longer supported). 773 774Tiled 1.4 775~~~~~~~~~ 776 777* Added ``objectalignment`` to the :ref:`json-tileset` object. 778* Added ``tintcolor`` to the :ref:`json-layer` object. 779 780Tiled 1.3 781~~~~~~~~~ 782 783* Added an ``editorsettings`` property to top-level :ref:`json-map` and 784 :ref:`json-tileset` objects, which is used to store editor specific settings 785 that are generally not relevant when loading a map or tileset. 786 787* Added support for Zstandard compression for tile layer data 788 (``"compression": "zstd"`` on :ref:`tile layer objects <json-layer>`). 789 790* Added the ``compressionlevel`` property to the :ref:`json-map` object, 791 which stores the compression level to use for compressed tile layer data. 792 793Tiled 1.2 794~~~~~~~~~ 795 796* Added ``nextlayerid`` to the :ref:`json-map` object. 797 798* Added ``id`` to the :ref:`json-layer` object. 799 800* The tiles in a :ref:`json-tileset` are now stored as an array instead 801 of an object. Previously the tile IDs were stored as string keys of 802 the "tiles" object, now they are stored as ``id`` property of each 803 :ref:`Tile <json-tile>` object. 804 805* Custom tile properties are now stored within each 806 :ref:`Tile <json-tile>` instead of being included as 807 ``tileproperties`` in the :ref:`json-tileset` object. 808 809* Custom properties are now stored in an array instead of an object 810 where the property names were the keys. Each property is now an object 811 that stores the name, type and value of the property. The separate 812 ``propertytypes`` and ``tilepropertytypes`` properties have been 813 removed. 814 815Tiled 1.1 816~~~~~~~~~ 817 818* Added a :ref:`chunked data format <json-chunk>`, currently used for 819 :doc:`infinite maps </manual/using-infinite-maps>`. 820 821* :doc:`Templates </manual/using-templates>` were added. Templates can 822 be stored as JSON files with an :ref:`json-objecttemplate` object. 823 824* :ref:`Tilesets <json-tileset>` can now contain 825 :doc:`Terrain Sets </manual/terrain>`. They are saved in the 826 new :ref:`json-wangset` object (since Tiled 1.1.5). 827