Use this page as the release-facing checklist for what Grid Placement 6.0.0 publicly supports and how the shipped demos exercise it.
Version note: Grid Placement 6.0.0's buyer-facing package is the 2D
TileMapLayerpath on Godot 4.5.x minimum. The 3D placement surface exists for internal development and is not part of the public 6.0 support promise.
Shortest Successful Path
For a first integration, keep the path deliberately small:
- Install and enable
addons/grid_placement. - Run Project -> Tools -> Grid Placement / Setup Default Input Actions.
- Start from the shipped systems/template scenes instead of hand-building every node.
- Assign one
PlacementLevelContext.target_map(TileMapLayer) and onePlacementLevelContext.objects_parent(Node2D). - Add or select one
ScenePlacementEntryobject. - Confirm one object placement.
- Add one terrain palette/entry only after object placement works.
- Confirm one terrain
SINGLEpaint.
Do not start with custom inventory, save/load, web export, split-screen, hex grids, or flood fill. Add those only after the basic object and terrain paths are green.
See Getting Started for the full setup walk-through.
Shipped 6.0 Demo Entry Points
The 6.0 package ships these public 2D demos:
| Demo | Surface | What to try first |
|---|---|---|
| Top-down 2D placement | Square/top-down TileMapLayer |
Select a scene object, place it, then select terrain and paint SINGLE. |
| Isometric 2D placement | Isometric TileMapLayer |
Place a simple object and verify targeting/preview lines up with the isometric map. |
| Platformer 2D placement | 2D platformer map | Place the demo box/object and verify collision-based validation. |
| Hex 2D terrain demo | Advanced TileMapLayer path |
Verify SINGLE, LINE, RECTANGLE_FILL, RECTANGLE_OUTLINE, and FLOOD_FILL behavior. |
The 3D demo/config is internal-only for 6.0 release packaging. Do not present 3D placement as a supported public 6.0 surface unless the release package and release notes explicitly change that contract.
Supported vs Experimental Surfaces
| Surface | 6.0 public support | Notes |
|---|---|---|
| Square/top-down 2D object placement | Supported | Recommended beginner path. |
| Square/top-down 2D terrain painting | Supported | SINGLE, LINE, RECTANGLE_FILL, RECTANGLE_OUTLINE, and FLOOD_FILL are the documented terrain brush modes. |
| Isometric 2D object placement | Supported with project verification | Verify tile transforms, collision layers, and visuals in your own map. |
| Isometric 2D terrain painting | Supported through 2D TileMapLayer workflows |
Brush generation is in cell space; verify visuals/masks in your project. |
| Hex 2D terrain brushing | Supported advanced 2D path | Runtime proof covers the shipped hex tileset for SINGLE, LINE, RECTANGLE_FILL, RECTANGLE_OUTLINE, FLOOD_FILL, preview-no-mutation, commit, and cancel. Verify visuals/masks in your own project. |
| Web export | Supported only after web-specific smoke proof | Web resource loading is stricter than editor/desktop; see Web Export Guide and #310. |
| 3D placement / GridMap terrain | Internal/deferred for 6.0 public package | 6.1 work may exist in branches/PRs, but 6.0 docs/store copy should not sell it as supported. |
Brush Mode Matrix
| Mode | Terrain painting | Object placement | Commit semantics |
|---|---|---|---|
SINGLE |
Supported | Supported | Hover/preview one cell; click/confirm commits one terrain cell or one object. |
LINE |
Supported | Opt-in by profile/category | Press/hold at start cell, drag to end cell, release to validate/commit generated cells or object instances. |
RECTANGLE_FILL |
Supported | Not part of public object placement surface | Press/hold at corner A, drag to corner B, release to validate/commit filled terrain cells. |
RECTANGLE_OUTLINE |
Supported | Not part of public object placement surface | Press/hold at corner A, drag to corner B, release to validate/commit perimeter terrain cells. |
FLOOD_FILL |
Supported terrain-region operation | Not an object placement mode | First click anchors/shows the pending region; second click commits; cancel clears the pending region without painting. |
Important behavior:
- Drag/rectangle/line preview must not mutate the real
TileMapLayerbefore commit. - Flood-fill preview must not mutate the real
TileMapLayeruntil the second confirm. - Object placement runs final validation at commit time. A preview that looked valid earlier can still fail if the world changes before confirm.
- Object
LINEplacement is opt-in. Do not assume every placeable supports it.
Terrain Brush Cell Cap
PlacementSettings.max_terrain_brush_cells limits how many cells one terrain brush action may generate.
| Setting | Meaning |
|---|---|
| Default | 4096 cells per terrain brush action. |
| Inspector clamp | Values are clamped to [1, 16384]. |
| Runtime hard ceiling | 16384 cells, even if a resource is hand-edited or misconfigured. |
| Applies to | LINE, RECTANGLE_FILL, RECTANGLE_OUTLINE, and FLOOD_FILL. |
| Why it exists | Prevents accidental frame spikes or unbounded flood/drag work. |
If a large drag/flood-fill paints fewer cells than expected, inspect this setting before debugging terrain rules.
Common Claim Boundaries
Use these phrases in docs/store copy:
- Good: "Grid Placement 6.0 supports 2D object placement and 2D terrain painting on Godot
TileMapLayer." - Good: "Hex terrain brushing is supported as an advanced 2D TileMapLayer path; verify visuals and masks in your project."
- Good: "3D placement work is internal/deferred for the public 6.0 package."
- Avoid: "All grid types are fully supported"; 6.0's public promise is 2D
TileMapLayer, with hex terrain brushing as an advanced verified path. - Avoid: "3D/GridMap placement is included in 6.0" unless the release package explicitly changes.
- Avoid: "Flood fill paints immediately on click"; it uses anchor/second-confirm semantics.
Related Open or Recently Closed Issues
- #164 — package/export/docs reconciliation owns the final release package contract.
- #282 — hex-grid multi-cell terrain brush verification (closed by the runtime proof for supported advanced hex terrain brushing).
- #310 — WebGL/browser smoke workflow before web uploads.
- #386 — terrain/object brush commit semantics audit (closed; this guide reflects those semantics).
- #387 — terrain brush cell cap (closed; this guide documents the cap).