Skip to content

Keep persistent tile selections per TileMapLayer #13113

@davifoox

Description

@davifoox

Describe the project you are working on

A 2D platformer with two TileMapLayers:

  • One layer with a Terrain (autotile) for level collisions.
  • Another layer with a Scene Collection and a scene called BreakableBlock.

Describe the problem or limitation you are having in your project

Each time I switch from one TileMapLayer to another, the editor resets the tile to the last used selection globally. This forces me to manually reselect the tile every time I change layers, which slows down the workflow significantly.
I took a few screenshots to illustrate better:

"FloorLayer" with Terrains selected:
Image

Switching to "BreakableBlockLayer":
Image

Selecting Scene Collection:
Image

Switching back to "FloorLayer" I need to reselect Terrain again:
Image

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Keep persistent tile selection per TileMapLayer.
This way, when switching between layers, the editor would remember the last tile selection for that specific layer.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

The editor stores the last used selection per TileMapLayer.
When switching back to a previously edited layer, the selection automatically restores.

Example (pseudo-behavior):

  1. Select autotile in Layer A.
  2. Switch to Layer B → selection switches to Layer B’s last tile.
  3. Switch back to Layer A → editor restores Layer A’s last selection.

If this enhancement will not be used often, can it be worked around with a few lines of script?

Not possible in this case, since it concerns editor selection behavior.

Is there a reason why this should be core and not an add-on in the asset library?

This is an improvement to the built-in TileMapLayer node and editor workflow, so it should be part of core functionality rather than an add-on.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions