title: Defold tile map manual
A Tile Map is a component that allows you to assemble, or paint, tiles from a Tile Source onto a large grid area. Tile maps are commonly used to build game level environments. You can also use the Collision Shapes from the tile source in your maps for collision detection and physics simulation (example).
Before you can create a tile map you need to create a Tile Source. Refer to the Tile Source manual to learn how to create a Tile Source.
To create a new tile map:
To paint tiles on your tile map:
You can pick tiles directly from a layer and use the selection as a brush. Hold Shift and click a tile to pick it up as the current brush. While holding Shift you can also click and drag to select a block of tiles to use as a larger brush. Also, it is possible to cut tiles in a similar way by holding Shift+Ctrl or erase them by holding Shift+Alt.
For clockwise brush rotation, use Z. Use X for horizontal flipping and Y for vertical flipping of the brush.
To add a tile map to your game:
You can manipulate tilemaps in runtime through a number of different functions and properties (refer to the API docs for usage).
You can read and write the content of a tile map dynamically while your game is running. To do so, use the tilemap.get_tile()
and tilemap.set_tile()
functions:
local tile = tilemap.get_tile("/level#map", "ground", x, y)
if tile == 2 then
-- Replace grass-tile (2) with dangerous hole tile (number 4).
tilemap.set_tile("/level#map", "ground", x, y, 4)
end
Apart from the properties Id, Position, Rotation and Scale the following component specific properties exist:
Tile Source : The tilesource resource to use for the tilemap.
Material : The material to use for rendering the tilemap.
Blend Mode : The blend mode to use when rendering the tilemap.
A tilemap has a number of different properties that can be manipulated using go.get()
and go.set()
:
tile_source
: The tile map tile source (hash
). You can change this using a tile source resource property and go.set()
. Refer to the API reference for an example.
material
: The tile map material (hash
). You can change this using a material resource property and go.set()
. Refer to the API reference for an example.
{% include shared/material-constants.md component='tilemap' variable='tint' %}
tint
: The color tint of the tile map (vector4
). The vector4 is used to represent the tint with x, y, z, and w corresponding to the red, green, blue and alpha tint.
The game.project file has a few project settings related to tilemaps.
There are external map/level editors that can export directly to Defold tilemaps:
Tiled is a well-known and widely used map editor for orthogonal, isometric and hexagonal maps. Tiled has support for a wide array of features and can export directly to Defold. Learn more about how to export tilemap data and additional meta-data in this blog post by Defold user "goeshard"
Tilesetter can be used to automatically create full tilesets from simple base tiles and it has a map editor which can export directly to Defold.