Tileset Builder - ZIP tileset importer & tile generator

Hello all! I made a tileset import tool for my game project, to speed up development time, make prototyping easier, and reduce the number of managed files when working with tilesets. Thought I’d share.

Features:

  • Import ZIP archives of tile images as one atlas texture.
    • Missing tiles are generated by flipping, rotating or merging other tiles.
    • You can supply your tile images as partially-transparent “parts”, which will then be overlaid on top of the inside/center tile.
  • Export generated tilesets as PNG images, allowing you to inspect or share them.
  • Create tileset resources with the click of a button, complete with default terrain and physics shapes.
  • 1-by-1 slopes are supported, complete with transition tiles to other surfaces. Long and tall slopes are planned, but are not yet included.
  • If you have the better-terrain plugin installed, then terrain for the plugin will be set up as well during the tileset creation process. This allows slopes to be autotiled, which is not possible in Godot’s default tile terrain system.

Godot version: 4.4 / 4.5
Language: GDScript

The plugin can be downloaded here.

Feedback about the tool is welcome. I also accept pull requests and bug reports on the github page.

1 Like

This looks pretty cool. I will take a look.

Can you point me to the script or scripts in your repo where you are concatenating the tiles together to form the tileset? I’m trying to solve a similar problem where I have a bunch of separate images as part of an object, and I’m trying to save them all as one file in Godot so as to make the export of the textures smaller and reduce the memory footprint of my 2D images.

Hi! I believe you’ll want to take a look at the TileAtlasTexture script, which makes heavy use of the Image.blit_rect function.

Note that tile images in this tool have fixed coordinates and are pre-processed to be of identical sizes, so it may not necessarily fit your use-case.

1 Like

Thanks. Yeah I’m using image.blitrect() and I don’t know that I’m going to learn anything new, but you never know unless you try! I appreciate it! Right now my images all end up piled on top of one another, out of position.