Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
docs-folder: "docs/"

- name: Upload documentation
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: Tiled-Manual-HTML
path: docs/_build/html/
2 changes: 1 addition & 1 deletion .github/workflows/macos-latest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
popd

- name: Upload artifact
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: Tiled.app
path: Tiled-*-macos.zip
12 changes: 6 additions & 6 deletions .github/workflows/packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ jobs:
./linuxdeploy-x86_64.AppImage --appdir AppDir --custom-apprun=dist/linux/AppRun --exclude-library "*libpython3*" --plugin qt --output appimage

- name: Upload Tiled.AppImage
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: Tiled-${{ needs.version.outputs.version }}_Linux_x86_64.AppImage
path: Tiled-${{ needs.version.outputs.version }}_Linux_x86_64.AppImage
Expand Down Expand Up @@ -184,7 +184,7 @@ jobs:
uses: snapcore/action-build@v1

- name: Upload snap artifact
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: tiled_amd64.snap
path: tiled_*_amd64.snap
Expand Down Expand Up @@ -318,7 +318,7 @@ jobs:
ditto -c -k --sequesterRsrc --keepParent install/Tiled.app Tiled-${{ needs.version.outputs.version }}_macOS-${{ matrix.version_suffix }}.zip

- name: Upload Tiled.app
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: Tiled-${{ needs.version.outputs.version }}_macOS-${{ matrix.version_suffix }}.app
path: Tiled-${{ needs.version.outputs.version }}_macOS-${{ matrix.version_suffix }}.zip
Expand Down Expand Up @@ -426,13 +426,13 @@ jobs:
mv release/installer*/Tiled-*.msi ./Tiled-${{ needs.version.outputs.version }}_${{ matrix.filename_suffix }}.msi

- name: Upload Tiled installer
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: Tiled-${{ needs.version.outputs.version }}_${{ matrix.filename_suffix }}.msi
path: Tiled-${{ needs.version.outputs.version }}_*.msi

- name: Upload Tiled archive
uses: actions/upload-artifact@v5
uses: actions/upload-artifact@v6
with:
name: Tiled-${{ needs.version.outputs.version }}_${{ matrix.filename_suffix }}.zip
path: release/install-root/*
Expand All @@ -448,7 +448,7 @@ jobs:

steps:
- name: Download all artifacts
uses: actions/download-artifact@v6
uses: actions/download-artifact@v7

- name: Create release
id: create_release
Expand Down
1 change: 1 addition & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
* Rewritten Properties view to enable direct widget interaction (#4045)
* Added support for lists in custom properties (#1493)
* Added capsule object shape (by Jocelyn, #2153)
* Added Oblique map orientation, skewing X and/or Y axis (#2917)
* Allow filtering tilesets by name in the tileset dock (with dogboydog, #4239)
* Allow changing the values of number inputs using expressions (with dogboydog, #4234)
* Added support for SVG 1.2 / CSS blending modes to layers (#3932)
Expand Down
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ Tiled Documentation

manual/introduction
manual/projects
manual/maps
manual/layers
manual/editing-tile-layers
manual/objects
Expand Down
4 changes: 2 additions & 2 deletions docs/manual/automapping.md
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ IgnoreHexRotate120
: This boolean layer property can be added to `input` and `inputnot` layers to also match 120-degree rotated tiles on hexagonal maps. However, note that Automapping currently does not really work for hexagonal maps since it does not take into account the staggered axis.

(outputProbability)=
Probability {bdg-primary}`New in Tiled 1.10`
Probability {bdg-secondary-line}`Since Tiled 1.10`
: This float layer property can be added to `output` layers to control the probability that a given output index will be chosen. The probabilities for each output index are relative to one another, and default to 1.0. For example, if you have outputA with probability 2 and outputB with probability 0.5, A will be chosen four times as often as B. If multiple output layers with the same index have their **Probability** set, the last (top-most) layer's probability will be used.

{bdg-secondary-line}`Since Tiled 1.9`
Expand Down Expand Up @@ -265,7 +265,7 @@ NoOverlappingOutput
: When set to `true`, the output of a rule is not allowed to overlap other outputs of the same rule (defaults to `false`).

(IgnoreLock)=
IgnoreLock {bdg-primary}`New in Tiled 1.10`
IgnoreLock {bdg-secondary-line}`Since Tiled 1.10`
: Since Tiled 1.10, Automapping rules no longer modify locked layers. Set this property to `true` to ignore the lock. This can be useful when you have layers that are only changed by rules and want to keep them locked.

All these options can also be set on the rule map itself, in which case they apply as defaults for all rules, which can then be overridden for specific rules by placing rectangle objects.
Expand Down
4 changes: 2 additions & 2 deletions docs/manual/custom-properties.rst
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ quickly jump to the referenced object.

.. raw:: html

<div class="new">New in Tiled 1.8</div>
<div class="new new-prev">Since Tiled 1.8</div>

.. _custom-property-types:

Expand Down Expand Up @@ -105,7 +105,7 @@ names. Classes can have members referring to other classes.

.. raw:: html

<div class="new">New in Tiled 1.9</div>
<div class="new new-prev">Since Tiled 1.9</div>

Each data type has a "Class" property, which can be used to refer to a custom
class. The members of this class will then be directly available as custom
Expand Down
4 changes: 2 additions & 2 deletions docs/manual/editing-tile-layers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ tile or pattern.

.. raw:: html

<div class="new">Since Tiled 1.10.2</div>
<div class="new new-prev">Since Tiled 1.10.2</div>

- Holding ``Alt`` draws the rectangle or ellipse centered around the starting
location.
Expand Down Expand Up @@ -170,7 +170,7 @@ by clicking on one of the tool buttons in the Tool Options toolbar.

.. raw:: html

<div class="new">Since Tiled 1.12</div>
<div class="new">New in Tiled 1.12</div>

While selecting an area, the following modifiers can be used:

Expand Down
4 changes: 2 additions & 2 deletions docs/manual/export-defold.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ It only supports tile layers and only a single tileset may be used.

.. raw:: html

<div class="new">New in Tiled 1.9.2</div>
<div class="new new-prev">Since Tiled 1.9.2</div>

Custom Properties
^^^^^^^^^^^^^^^^^
Expand Down Expand Up @@ -69,7 +69,7 @@ Custom Properties

.. raw:: html

<div class="new">New in Tiled 1.10</div>
<div class="new new-prev">Since Tiled 1.10</div>

* A custom float property named "z" can be added to tile layers to manually
specify their ``z`` value.
6 changes: 3 additions & 3 deletions docs/manual/export-tscn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

.. raw:: html

<div class="new">New in Tiled 1.10</div>
<div class="new new-prev">Since Tiled 1.10</div>

Godot 4
=======
Expand Down Expand Up @@ -64,7 +64,7 @@ Tile Properties

.. raw:: html

<div class="new">New in Tiled 1.10.2</div>
<div class="new new-prev">Since Tiled 1.10.2</div>

All custom properties set on tiles will get exported as `Custom Data Layers
<https://docs.godotengine.org/en/stable/tutorials/2d/using_tilesets.html#assigning-custom-metadata-to-the-tileset-s-tiles>`__
Expand Down Expand Up @@ -93,7 +93,7 @@ overwritten every time the map is exported.

.. raw:: html

<div class="new">Since Tiled 1.11</div>
<div class="new">New in Tiled 1.11</div>

Object Properties
~~~~~~~~~~~~~~~~~
Expand Down
13 changes: 7 additions & 6 deletions docs/manual/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ your level with extra information used by the game. Tiled focuses on
general flexibility while trying to stay intuitive.**

In terms of tile maps, it supports straight rectangular tile layers, but
also projected isometric, staggered isometric and staggered hexagonal
layers. A tileset can be either a single image containing many tiles, or
also projected isometric, staggered isometric, staggered hexagonal and
oblique layers. A tileset can be either a single image containing many tiles, or
it can be a collection of individual images. In order to support certain
depth faking techniques, tiles and layers can be offset by a custom
distance and their rendering order can be configured.
Expand Down Expand Up @@ -93,10 +93,11 @@ following dialog will pop up:
New Map

Here, we choose the initial map size, tile size, orientation, tile layer
format, tile render order (only supported for *Orthogonal* maps) and whether
the map is :doc:`infinite <using-infinite-maps>` or not. All of these things
can be changed later as needed, so it's not important to get it all right the
first time.
format, tile render order (only supported for *Orthogonal* and *Oblique* maps)
and whether the map is :doc:`infinite <using-infinite-maps>` or not. For more
details on map orientations and related options, see :doc:`maps <maps>`. All of
these things can be changed later as needed, so it's not important to get it
all right the first time.

.. note::

Expand Down
126 changes: 126 additions & 0 deletions docs/manual/maps.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
Editing Maps
============

A map is a top-level asset file that contains :doc:`layers <layers>` and references :doc:`tileset
files <editing-tilesets>` (which can optionally be embedded). It defines the coordinate system, tile
size, orientation, render order and other map-wide configuration options that affect how the content
is displayed and exported.

Creating a Map
--------------

You can create a new map via *File -> New -> New Map…*. The New Map dialog
lets you set:

- **Orientation** (see :ref:`map-orientations`)
- **Tile Layer Format** (the storage format for tile data)
- **Render Order** (only for orthogonal and oblique maps)
- **Map Size** (fixed width/height or infinite)
- **Tile Size** (tile width/height in pixels)

All of these options can be changed later in the **Properties** panel, via
*Map -> Map Properties…*.

.. _map-orientations:

Map Orientations
----------------

The map orientation controls how the tile grid is projected and how tiles are
positioned relative to each other. Tiled supports the following orientations.

Orthogonal
~~~~~~~~~~

The classic top-down grid where rectangular tiles are arranged in straight rows
and columns. This is the most straightforward orientation.

Isometric
~~~~~~~~~

Isometric maps are projected to give a 3D-like appearance. Tiles are still arranged in a grid, but
are drawn as diamonds (though Tiled doesn't transform your art, you'll need to provide the diamond
shaped tiles). Object positions are stored in a projected coordinate space (see
:ref:`object-layer-introduction`).

Isometric (Staggered)
~~~~~~~~~~~~~~~~~~~~~

Staggered isometric maps also use diamond-shaped tiles, but the grid is
staggered every other row or column. The exact staggering is controlled by the
**Stagger Axis** and **Stagger Index** map properties.

This orientation allows a map based on isometric tiles to still have an overall rectangular shape.

Hexagonal (Staggered)
~~~~~~~~~~~~~~~~~~~~~

Hexagonal maps use hex tiles arranged in a staggered grid. Like staggered
isometric maps, the staggering is controlled by **Stagger Axis** and
**Stagger Index**. Hexagonal maps also support a **Hex Side Length** that
defines the length of the straight edges of the hex tile.

The following table shows how **Stagger Axis** relates to the two common hex
tile orientations:

.. list-table::
:header-rows: 1
:widths: 30 70

* - Stagger Axis
- Hex Tile Orientation
* - X
- Pointy-top
* - Y
- Straight-top


.. raw:: html

<div class="new">New in Tiled 1.12</div>

Oblique
~~~~~~~

Oblique maps apply a skew transform to achieve a pseudo-3D projection. The amount of skew is
controlled by the **Skew** map property, in pixels.

**Skew X** determines the horizontal offset applied for each row, while **Skew Y** determines the
vertical offset applied for each column.

Map Properties
--------------

The following properties are especially relevant when configuring a map.

Map Size (Fixed vs. Infinite)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Maps can be **fixed size** or **infinite**. A fixed map has a set width and
height in tiles, while an infinite map has an auto-growing canvas that expands
as you paint. The choice impacts how tile layers are stored.

For details on working with infinite maps and converting between the two, see
:doc:`using-infinite-maps`.

Tile Size
~~~~~~~~~

The tile width and height define the size of each tile in pixels. These values affect the tile grid
and the map bounds, but does not affect the size at which tiles are rendered (unless the relevant
tileset has **Tile Render Size** set to **Map Grid Size**).

Parallax Origin
~~~~~~~~~~~~~~~

The parallax origin defines the reference point for :ref:`parallax scrolling
factor <parallax-factor>` on layers. It is stored per map and defaults to
(0, 0), which is the top-left of the map's bounding box.

Tile Layer Format
~~~~~~~~~~~~~~~~~

The tile layer format determines how tile data is stored when saving or
exporting the map. Some formats are more compact or faster to parse than
others. You can change the format at any time in the **Properties** panel,
via *Map -> Map Properties…*.
2 changes: 1 addition & 1 deletion docs/manual/objects.rst
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ collision shape needs to represent a circle or ellipse.

.. raw:: html

<div class="new">Since Tiled 1.12</div>
<div class="new">New in Tiled 1.12</div>


.. _insert-capsule-tool:
Expand Down
2 changes: 1 addition & 1 deletion docs/manual/preferences.rst
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ as they depend on the system.

.. raw:: html

<div class="new">New in Tiled 1.10</div>
<div class="new new-prev">Since Tiled 1.10</div>

Custom Interface Font
~~~~~~~~~~~~~~~~~~~~~
Expand Down
4 changes: 2 additions & 2 deletions docs/manual/scripting.rst
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ startup.

.. raw:: html

<div class="new">Since Tiled 1.8</div>
<div class="new new-prev">Since Tiled 1.8</div>

When using the ``.mjs`` extension, script files are loaded as `JavaScript
modules`_. They will then be able to use the `import`_ and `export`_ statements
Expand Down Expand Up @@ -110,7 +110,7 @@ script expressions.

.. raw:: html

<div class="new">Since Tiled 1.9</div>
<div class="new new-prev">Since Tiled 1.9</div>

.. _script-cli:

Expand Down
6 changes: 3 additions & 3 deletions docs/manual/using-commands.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ Using Commands
The Command Button allows you to create and run shell commands (other
programs) from Tiled.

You may setup as many commands as you like. This is useful if you edit
You may set up as many commands as you like. This is useful if you edit
maps for multiple games and you want to set up a command for each game.
Or you could setup multiple commands for the same game that load
Or you could set up multiple commands for the same game that load
different checkpoints or configurations.

The Command Button
Expand Down Expand Up @@ -100,7 +100,7 @@ the following variables:

.. raw:: html

<div class="new">New in Tiled 1.9</div>
<div class="new new-prev">Since Tiled 1.9</div>

``%worldfile``
the full path of the world the current map is part of, if any.
Expand Down
Loading
Loading