Godot 4 Autotile & Terrain Set Generator — Peering Bits Set for You
Setting 47 × 8 peering bits by hand is where Godot 4 terrains go wrong. The Studio recognises the sheet's layout, writes the bits, shows which combinations are missing, and paints a test map exactly as set_cells_terrain_connect will.

- Godot 4 TileSetVerified· Godot 4.7.2
- TiledVerified· Tiled 1.12.2
- Unity 6 Rule TileVerified· Unity 6000.5.3f1 + 2D Tilemap Extras 8.0.3
- LDtkPartly verified· LDtk 1.5.3 schema + loader
What it does
- Recognises blob-47 (five published orders), 16-side, 16-corner / dual grid and 3×3 layouts from seam continuity, with a confidence.
- Match modes corners-and-sides, sides and corners; several terrains per set.
- The Check panel lists missing combinations — the tiles Godot would otherwise silently substitute.
- Export: PNG + JSON + nerulio_tileset_import.gd, which builds the TileSet with terrains in Godot (verified in 4.7.2).
How to do it
- Drop the autotile sheet.
- Use the grid, apply the best layout candidate.
- Check it, paint a test map with the Godot rule.
- Export for Godot 4 and run the import script in the editor.
Engine exports and how each was checked
"Verified" means the exported files were loaded by the real engine or tool on real CC0 assets and the result was compared with the source. Anything that was not loaded is labelled as such.
| Target | Files | Check |
|---|---|---|
| Godot 4 TileSet | PNG · nerulio-tileset.json · nerulio_tileset_import.gd | Verified Godot 4.7.2The included import script builds the TileSet with terrain peering bits; a map painted with set_cells_terrain_connect equals the Studio preview in every cell on 9 corpus sheets. |
| Tiled | .tsx Wang set · sample.tmx | Verified Tiled 1.12.2Tiled's own readers load every Wang ID as written and the sample map renders pixel-exact. The terrain brush itself was not driven. |
| Unity 6 Rule Tile | nerulio-ruletile.json · Editor/NerulioRuleTileImporter.cs | Verified Unity 6000.5.3f1 + 2D Tilemap Extras 8.0.3Blob and side sets: a painted Tilemap shows the predicted sprite in every cell. Corner / dual-grid sets are not exported to Unity. |
| LDtk | .ldtk (1.5.3) · rules · sample level | Partly verified LDtk 1.5.3 schema + loaderAccepted by the LDtk JSON schema and its official loader, and the rules re-run to the exported tiles; not opened in the LDtk app. |
Evidence
Layouts identified from the pixels alone on the tile corpus: 4 blob-47 templates and 2 Wang templates with high confidence, a real 64 px cave tileset with medium confidence — every tile's bits right. Godot 4.7.2 painted every test cell exactly as the Studio predicted (485/485 per blob set, 251/251 on a 4-terrain dual-grid pack); Tiled 1.12.2 read every Wang ID back; Unity 6000.5 matched on every painted cell of the blob and side sets.
Limits
- Tiled's terrain brush, the LDtk app and Godot's editor painter were not driven; the checks use the engines' readers and set_cells_terrain_connect.
- Unity gets blob and side sets only; several terrains become several Rule Tiles with no transitions between them.
- Isometric and hex tiles, animated tiles, occlusion and navigation layers are out of scope.
- Suggesting bits without a known layout needs a reference "full" tile; on side-only path templates the guess can fail until you select it.
Questions
Is the export a .tres file?
No. It is the PNG, a JSON description and a GDScript that builds the TileSet inside Godot, so the resource is written by Godot itself; the whole path was verified in Godot 4.7.2.
Does it match Godot cell for cell?
On the test corpus, every painted cell in Godot 4.7.2 equalled the Studio preview (485/485 on each blob set, 251/251 on the dual-grid pack).
Is it free, and do I need an account?
Everything on these pages is free and works without an account. There is no watermark and no export that is held back.
Are my sprites uploaded?
No. The Studio decodes, packs and exports in this browser tab. Projects are autosaved in the browser (IndexedDB) and can be saved as a .nerulio file.
Does it need Aseprite or an engine plugin installed?
No. .aseprite files are read and written in the browser, and each engine bundle carries what that engine needs (for Godot, the import settings and scene; for Unity and the Godot TileSet, a small editor script).