Posted March 15, 2026 by Thorbjørn Lindeijer
#Release
Tiled 1.12 brings a rewritten Properties view with direct widget interaction, support for list-valued custom properties, a new Oblique map orientation, layer blending modes, capsule objects, and many usability and scripting improvements.
The Properties view has been rewritten to make editing properties more direct and convenient. Rather than creating widgets when clicking values, the values can now be interacted with immediately. This especially improves the workflow when working with checkboxes, comboboxes, colors, file paths, object references, and for included buttons.
This rewrite also layed the groundwork for supporting lists in custom properties.
Custom properties can now store lists of values. This much requested feature is useful when a single value is not sufficient. Need multiple references, fill containers with multiple items or maybe just have a list of tags? Now you no longer have to resort to comma-separated strings or numbered property names.
Of course list values are also supported in the scripting API, where they map to/from JS arrays:
tiled.activeAsset.selectedObjects[0].setProperty("drops", [
tiled.propertyValue("Drop", { "item": "MaggotSlime", "probability": 0.5 }),
tiled.propertyValue("Drop", { "item": "Knife", "probability": 0.01 }),
]);
This release adds support for an Oblique map orientation, allowing the X and/or Y axis to be skewed. Here are two examples of oblique maps rendered by Tiled, using tiles provided by sxdxs and wayfu on the original GitHub issue:
Layers gained support for SVG 1.2 / CSS blending modes (Normal, Multiply, Screen, Overlay, Darken, Lighten, Color Dodge, Color Burn, Hard Light, Soft Light, Difference, and Exclusion). Here’s a comparison of Normal and Multiply blending modes in a level by Tom Happ:
For object layers, there is now a capsule object shape, which should be a nice addition when your physics engine supports it. In addition, object opacity can now be adjusted per object.
A large part of this release is focused on smaller quality-of-life improvements that add up in day-to-day use. The tileset dock can now be filtered by tileset name, and number inputs now support expressions, so you can type a calculation to set a value.
Several tile editing tools became more convenient as well. The Rectangular Select tool gained square selection and expand-from-center behavior. The Stamp Brush, Terrain Brush and Eraser now show status information for their various modes. It is also now possible to cancel tile-related operations with Escape or right-click. Finally, the Magic Wand, Bucket Fill and Select Same Tile tools now allow their area to be expanded by dragging across multiple tiles.
Other usability updates include a “Go to Tile” action to jump to specific coordinates, a “World > World Properties” action that makes World properties accessible, switching back to the previous tool by repeating the shortcut of the current tool, plus a button to toggle the Terrain Brush to full tile mode.
The tBIN plugin gained support for the tIDE XML format. And there is a new export plugin for Remixed Dungeon.
On the scripting side, this release adds API for accessing and modifying the custom property types of the project, access to session properties through tiled.session, MapEditor.selectedTool and MapEditor.tool, as well as TileMap.chunkSize and TileMap.compressionLevel.
Automapping was improved by no longer matching rules based on empty input indexes, while reloading of rule maps was optimized and rule maps are now loaded on demand.
I’d like to improve the state of translations for Tiled 1.12 and future releases. If you’re interested in helping update translations, please get in touch. More information about translating Tiled can be found on the Translating Tiled wiki page. I plan to do patch releases for Tiled 1.12 to ship updated translations.
Many other small improvements could not be mentioned, so check out the full changelog below.
TileMap.chunkSize and TileMap.compressionLevel propertiesDialog add widget methods (by Oval, #4358)tiled.session to read and write session properties (by Kanishka, #4345)MapEditor.selectedTool and MapEditor.tool (#4330)fileName property of map/tileset passed to FileFormat.write (by Shuvam Pal, #4359)Thanks to all contributors who made this release possible! Many smaller improvements were made in the last weeks by students interested in participating in the Google Summer of Code with us this year, and many more are pending review for upcoming releases.
Continued Tiled development is made possible by monthly donations through Patreon, GitHub Sponsors and OpenCollective as well as many people choosing to pay for Tiled on itch.io. This way, hundreds of people have contributed to the release of Tiled 1.12, thank you!
If you haven’t donated yet, please consider setting up a small monthly donation to support further improvements. Let’s make this tool even better!