Grass, stone, sand and water, each at 16 px and 32 px, in both of Godot 4's terrain layouts — 47 tiles (Match Corners and Sides) and 16 tiles (Match Sides). Every .tres in here is already a working terrain: terrain set configured, peering bits set on every tile, a collision polygon on every tile. You do not install anything to use these — you drop two files into a folder and paint.
One zip, 200 KB, 34 files, MIT. No email, no account, nothing to sign up for. MIT means commercial games are fine and no credit is required — art and .tres alike.
Byte-identical to the copy in the Blobsmith Autotile Wirer repo — this one is just closer. SHA-256 d0083cf6…a1e7cd — the same checksum published with the GitHub release, which is where the download on the Blobsmith store pages points.
Sixteen sheets, 8 columns each, ascending canonical-mask order. The 47-blob sheets are 8×6 tiles (128×96 at 16 px, 256×192 at 32 px); the 16-tile sheets are 8×2 (128×32 and 256×64). All are shown here at the same width, so the 16 px ones are magnified 2×.
Grass
Stone
Sand
Water
Grass
Stone
Sand
WaterSame art, one third of the tiles. Only the four orthogonal neighbours are matched, so a diagonal touch does not connect — which is what you want for pipes, fences, wires, roads and cave walls.
Grass
Stone
Sand
Water
Grass
Stone
Sand
WaterThe four terrains carry different names on purpose: the Terrains palette shows the terrain name, so sixteen of these open in one project stay tellable apart. The 48th cell of a 47-blob sheet is empty — 47 tiles do not divide by 8; a 16-tile sheet fills its 8×2 exactly.
.png and the .tres — into your project, any folder. They have to land in the same folder: the .tres points at the PNG by bare filename, on purpose, so the pair works wherever you put it..import file from anywhere — Godot writes its own.TileMapLayer, set its TileSet to the .tres, open the TileMap panel → Terrains tab, pick Connect mode, and paint.No plugin needed for this pack. Godot 4.3 or newer — TileMapLayer does not exist in 4.2, so step 3 has nothing to paint on there.
.tres_47blob_ files — the full blob set: every corner/side combination that can actually occur. (Not 256. Why 47 and not 256, asked of Godot 4.7 all 256 times.) 16 tiles in the _16sides_ files — every combination of the four sides..tres declares its own mode, so you never set it by hand.[ext_resource type="Texture2D" path="grass_47blob_16px.png" id="1_bsmith"]
...
1:0/0/terrain_set = 0
1:0/0/terrain = 0
1:0/0/terrains_peering_bit/top_side = 0
1:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-8, -8, 8, -8, 8, 8, -8, 8)
These files are not "should work". Each of the sixteen was loaded headless in a real Godot build, painted onto a real TileMapLayer with set_cells_terrain_connect, and read back — 216 checks in total. Run on three stable builds on 1 September 2026:
| Godot | starter pack |
|---|---|
| 4.3.stable | 216 pass / 0 fail |
| 4.4.stable | 216 pass / 0 fail |
| 4.7.stable | 216 pass / 0 fail |
Per tileset: the .tres loads with the relative texture path, the atlas source and texture resolve, the sheet is the expected size, the declared number of tiles is present, tile size is right, the terrain mode is the one that layout needs, the terrain carries its name, the physics layer exists, every tile has a collision polygon, a 20-cell terrain paint fills every cell, and the interior cell reports all 4 side peering neighbours — plus, in the 47-blob files, all 4 corners. The gate iterates manifest.json inside the pack and reads each entry's tile count and mode from it, so a new tileset cannot skip the engine and the 16-tile files are not held to a check loose enough for both layouts to pass. One measured limit: injecting a corner peering bit into a 16-tile .tres still passes the engine gate, because Godot normalises corner bits away in MATCH_SIDES — so that claim is asserted on the written bytes by the generator instead, and the engine-side corner check is scoped to the layout where it can fail.
This is procedural placeholder art, not a hand-drawn asset pack. It is for prototyping, for learning how Godot 4 terrains behave, and — the reason it exists — as a sheet you know is correct when your own tileset paints the wrong tile and you cannot tell your bug apart from the engine's behaviour. It will not carry the look of a finished game. Swap it for your own art when you have some.
The layout, though, is the real thing: if your own 47-tile or 16-tile sheet matches the corresponding sheet's ordering, it wires up exactly the same way.
The pack is the control sample. These pages are the measurements, each one with the scanner or the in-page tool that answers it:
tile_map_data — paste your .tscn and read the cells back.TileMapLayer; if your scenes still use TileMap, this converts them in one pass. The ones carrying a script go through the script port first.The Blobsmith Autotile Wirer addon — MIT, free, no account — turns any sheet in either layout into a wired .tres from inside the editor: Project > Tools > Blobsmith Autotile Wirer…. Verified headless on Godot 4.3, 4.4 and 4.7.
Blobsmith composes both sheets from the same 6-tile base block — the mode selector switches between 47 and 16 — and exports this exact .png + .tres pair. The sixteen files above are its output, not a lookalike built by a side script. Draw the block in your browser for free: Blobsmith Lite · full version with the Godot and Tiled exports: Blobsmith on itch.io.
Each file in the pack carries one terrain. Need four of them in one tileset? Merge them here — pasting two of these together by hand loses a terrain silently, because every one of them names its atlas TileSetAtlasSource_bsmith.
Brought your own sheet instead? Drop it in the generator and get the same kind of .tres for your art — tile size read off the image, transparent slots named before the download.