Tiled 1.5 Released

23 March 2021 • Thorbjørn Lindeijer

Tiled 1.5 brings a large amount of improvements, including a more powerful Terrain Brush, parallax scrolling and GameMaker Studio 2.3 export!

Unified Wang and Terrain tools

Since the addition of Wang tiles in Tiled 1.1 there were two very similar tools, each with their own set of features and limitations. Now, these tools have been unified into one powerful tool for automatic corner and edge-based tile placement. The new “Terrain Brush” even supports the blob tileset, a much requested feature that was previously not supported by either tool.

Painting with an edge-based tileset

Painting with a blob tileset

The unified tool also supports flipping or rotating tiles, either to create versions that otherwise don’t exist in a tileset or for more variation.

Compatibility Note: The storage format has changed such that older Tiled versions will not be able to read terrain information saved by Tiled 1.5.

Parallax Scrolling Factor

While custom parallax scrolling factors could previously be set using custom properties, this way it is not possible to see a level like it would appear in the game while editing, which can be important for prop placement. Now Tiled features a built-in property for controlling the parallax scrolling factor per layer, along with an optional live preview.

The level shown above is from the game Super Catboy, still in development.

New Export Formats

Tiled can now export maps to GameMaker Studio 2.3, which uses an entirely different file format than the still supported GameMaker: Studio 1.4. The export even covers tiles placed on isometric and hexagonal grids, which are normally not supported by GameMaker. It does this by exporting the tile layer to an Asset layer.

Another tool you can now export maps to is RPTools MapTool, though for now only tile layers using image collection tilesets are supported. It does support tile flipping and rotation, which is needed when using “ProBono’s 6x6 Mega Tile Pack V2 - Grid50” included with MapTool. A terrain set definition for this tileset is available at cpetig/tilesets.

Customization Options

It is now possible to make the “Select Object” tool prefer picking objects from the selected layer, or to only pick objects from selected layers. This can really help when dealing with overlapping objects or when group-selecting multiple objects where the region includes objects from other layers that you don’t want to select. When “Highlight Current Layer” is enabled, objects from the selected layers are automatically preferred.

New Options

The panning behavior can now be customized. For the middle mouse button there’s an option to use auto-scrolling (used in the video demonstrating parallax above). When using the arrow keys, the view will now scroll smoothly by default, instead of in steps based on key repetition.

Scripting

A few major additions have been made to the scripting API, which can now load, save and modify images and launch external processes. Scripted actions can now also be added to most context menus and they get a default icon to make them stand out from the built-in actions.

Changelog

Many small improvements could not be mentioned above. Here’s the full summary of the changes.

  • Unified Wang and Terrain tools (backwards incompatible change!)
  • Added support for a per-layer parallax scrolling factor (#2951)
  • Added export to GameMaker Studio 2.3 (#1642)
  • Added option to change object selection behavior (#2865)
  • Added Monospace option to the multi-line text editor
  • Added option to auto-scroll on middle click
  • Added smooth scrolling option for arrow keys
  • Added a ‘Convert to Polygon’ action for rectangle objects
  • Added support for drawing with a blob tileset
  • Added ‘Duplicate Terrain Set’ action
  • Added Terrain Set type (Corner, Edge or Mixed)
  • Added support for rotating and flipping Terrain tiles (by Christof Petig, #2912)
  • Added support for exporting to RPTools MapTool RpMap files (by Christof Petig, #2926)
  • Added Ctrl+Shift to toggle Snap to Fine Grid (by sverx, #2895)
  • Eraser: Added Shift to erase on all layers (by Michael Aganier, #2897)
  • Automatically add .world extension to new World files
  • Shape Fill Tool now displays the size of the current shape (#2808)
  • Tile Collision Editor: Added action to add an auto-detected bounding box collision rectangle (by Robin Macharg, #1960)
  • Tile Collision Editor: Added context menu action to copy selected collision objects to all other selected tiles (by Robin Macharg, #1960)
  • Tilesets view: Added “Edit Tileset” action to tab context menu
  • Tilesets view: Added “Add External Tileset” action to tilesets menu
  • Scripting: Added initial API for creating and modifying Terrain Sets
  • Scripting: Added API for working with images (#2787)
  • Scripting: Added API for launching other processes (#2783)
  • Scripting: Added MapView.center property
  • Scripting: Added missing Layer.id and Layer.parentLayer properties
  • Scripting: Enable extending most context menus
  • Scripting: Fixed reset of file formats on script reload (#2911)
  • Scripting: Fixed missing GroupLayer and ImageLayer constructors
  • Scripting: Added default icon for scripted actions
  • Enabled high-DPI scaling on Linux and changed rounding policy
  • Remember last file dialog locations in the session instead of globally
  • Fixed loading extension path from project config (by Peter Ruibal, #2956)
  • Fixed performance issues when using a lot of custom properties
  • Fixed storing template instance size when overriding the tile (#2889)
  • Fixed removal of object reference arrow when deleting target object (#2944)
  • Fixed updating of object references when layer visibility changes
  • Fixed map positioning issues in the World Tool (#2970)
  • Fixed handling of Shift modifiers in Bucket and Shape Fill tools (#2883)
  • Fixed scrolling speed in Tileset view when holding Ctrl
  • Fixed issue causing export.target to get written out as “.”
  • Fixed “Repeat last export on save” when using Save All (#2969)
  • Fixed interaction shape for rectangle objects to be more precise (#2999)
  • Fixed “AutoMap While Drawing” not applying when using Cut/Delete
  • Fixed path in AutoMap error message when rules file doesn’t exist
  • Lua plugin: Don’t embed external tilesets, unless enabled as export option (#2120)
  • Python plugin: Added missing values to MapObject.Shape enum (#2898)
  • Python plugin: Fixed linking issue when compiling against Python 3.8
  • CSV plugin: Include flipping flags in exported tile IDs
  • GMX plugin: Take tile object alignment into account
  • Linux: “Open Containing Folder” action now also selects the file
  • libtiled-java: Many updates (by Henri Viitanen, #2207)
  • Ported Tiled to Qt 6 (releases still use 5.15 for now)
  • Updated Bulgarian, Chinese (Simplified), Czech, Finnish, French, Portuguese, Portuguese (Portugal), Russian, Swedish and Turkish translations

Support Tiled Development :heart:

This new release was made possible by over 300 patrons and sponsors supporting me on a monthly basis as well as many people choosing to pay for Tiled on itch.io and some who donated through Liberapay. To ensure I will be able to keep developing Tiled at this pace, please set up a small monthly donation!

Your donation primarily enables me to work 2 full days/week on Tiled. With additional funds I can spend more days on Tiled. Let’s make this tool even better!

News Archive