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.0 through 4.7. The 3D placement surface exists for internal/next-release 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).
Related Guides
Source
docs/v6-0/guides/surface-and-brush-reference.md
Plugin docs root:gdscript/plugins/grid_placement_dev/docs