Possible to uniquely identify tiles? And possible to move already-placed tiles in batch?

I’ve created a collision overlay layer, which makes it easy to make the change in my Tiled GUI and have my own code that handles any inputs. However, what if I have a specific tile that should have an action attached to it? Or even a door that I want to uniquely identify and link to another map/door? Is there a way to “mark” that tile so that my code can distinguish it? I can distinguish some tiles from one another with the IDs that the json file spits out, but I want even more granularity.

Also, is there an easy way to drag tiles that you’ve already placed? I have been using the offset map functionality on highlighted parts but it’s not intuitive.

Objects or additional Tile Layers can be used to mark specific spots as having particular properties.

You can’t drag tiles, but you can cut+paste them. There is this scripted Move Tiles Tool, but it’s not really more convenient than cut+pasting.

That’s perfect. Can I select an any sort of square pattern or only rectangles? I can across the rectangle selector tool.

Custom properties look great as well. is there a way to apply the same label quickly to all the same tiles? Maybe “tree” for all trees that I place all and in the future. Also is it possible to have an array as a custom property? Like what would be my best option for storing a list of “messages”? I suppose I could use a string and create my own delimeter.

In addition to the Rectangular Select, you can also use the Magic Wand and Select Same Tile tools to select based on existing tiles. With the various modifier keys, you can add, subtract, and intersect to create more complex selections.

If you want a property to always be on all instances of a particular tile, the intended way is to assign that property to the tile itself, in the tileset. If you want it on all instances just in the current map, if you’re using tiles for the extra data, you can use Select Same Tile and then fill the area with your data tile on another layer. If you’re using Objects, there’s no easy way, but if you don’t want to place the Objects manually, you can use Automapping to output Objects wherever those tiles are found.

Array custom properties are currently not supported (but that is a planned feature). For now, you can use a string property, or multiple properties with array-like names (e.g. prop[1], prop[2]) that you can parse into arrays in your game.

2 Likes

Thanks you, I will give all of this a try

image

In order to do what you’re saying, I’ll need to use the custom types editor right? For some reason it’s grayed out for me.

You do not need custom types to do anything I wrote above. What I described uses custom properties, not custom types.

To answer your implied question though: it’s greyed out because you must have a Project to store the custom types in. But you don’t need this, you can assign the properties to the tiles/objects/whatever in the Properties panel. Custom types are for when you want to define complex property types or set default values for particular classes.

Apologies, conflated terms and my needs. If i select a tile, the property column on the left updates but is grayed as well

You can only edit tiles in the Tileset Editor. While you’re in the Map Editor, the properties are greyed out.

1 Like