Tiled Development Update (July 2026)
Published on August 20, 2026 by Thorbjørn Lindeijer

Dear sponsors, 

This update is later than usual: I was on holiday with my family from late July into mid-August, and I'm only now catching up. Here is what happened in July. 

Google Summer of Code 


Both GSoC contributors passed their midterm evaluation in July and kept up the pace:

  • Kanishka (@kanishka0411, Enhanced World Editing) documented the resizing of maps and the world grid in the manual (#4552) and made the World Tool useful for maps that are not part of a world: such maps now get a default world, so they can be resized with the tool, and there is a new action to create a world containing the current map (#4562). A fix for the view jumping when undoing map resizes and moves is in review (#4572).
  • Dagon Williams (@UltraDagon, new hardware renderer) landed the tile brush for the Qt Quick map view after several review rounds (#4547), the first editing tool working on the new renderer. His follow-up adding object layer support is under review (#4569).

Declarative QML Extensions


My main development effort this month went into adding support for writing extensions as declarative QML documents (#4568), an idea that had been on the wiki for a while. The Tiled QML module provides Action, MenuExtension, Tool, MapFormat, TilesetFormat and Dock types, and property bindings keep dynamic values like the enabled state of an action up to date automatically. Dock elements can define custom UI with Qt Quick, shown in a dock widget with persistent placement. The JavaScript extensions remain fully supported and are loaded by the same engine.

Along with this, I ported the tiled-extensions repository to QML on a branch, with qmllint/qmlls checks and a new "Layers Overview" dock as an example. The PR is still open and I'd love to hear what you think of the approach.


In the screenshot above, we can see a custom view on the layers entirely implemented in QML. It could include additional visualizations or controls specific to your project.
 

Automapping Tutorial


I published a new tutorial on the website: Focus on Level Design with Automapping. It walks through setting up Automapping rules that turn a simple blueprint into a finished dungeon, using a free tileset from CraftPix.


The above image shows the edited blueprint on the left and the result of applying the Automapping rules on the right.
 

Community Contributions


  • @miffe registered MIME types for more Tiled file extensions on Linux (.tmj, .tsj, .tiled-project and .world) (#4550), and @JarvisX-Z started the equivalent on macOS, which I extended to declare UTIs for all supported formats (#4469).
  • @City-busz set the desktop file name for the application, fixing the window icon on some Wayland compositors (#4567).
  • The TypeScript rewrite of the bulk-animations extension by @Lillious was merged after several review rounds (#12) and shipped as version 1.4.0, followed by a type-safety refactor (#13).
  • @SanjoSolutions added their Tileset Collision Generator extension to the tiled-extensions list (#29).

Fixes and Maintenance


The collapsed state of the property groups is now persisted in the session (#4561), the Properties view updates properly on "Reset Template Instance" (#4564), and list properties are now documented in the TMX and JSON format references (#4565). A crash after importing custom types with enums in lists got a fix that I will merge after some further testing (#4571).

On the CI side, the Qt 6 builds were updated to Qt 6.11.1 (#4494) and I opened a PR enabling Sentry crash reporting for the Windows builds, which so far was only active on Linux (#4566).

Finally, I've updated rs-tiled, the Rust crate for loading Tiled maps, to support the complete Tiled 1.12 feature set and released it as 0.16.0.
 

Thank You!


Thank you all for your continued support, and for your patience with this late update! Your support allows me to keep working on Tiled, reviewing contributions, and mentoring our two GSoC contributors. The August update should arrive on schedule!
 
Cheers,
Thorbjørn