Grid Placement can place two very different kinds of content:
- 2D terrain painting changes the cells of a
TileMapLayer— think of it as painting the ground itself. - Scene-object placement creates individual node instances in 2D or 3D — think chairs, walls, trees.
3D GridMap terrain painting is supported: paint/erase plus LINE/rectangle brushes with game-authored rule evaluation. See 3D Terrain Painting. In 3D, use scene-object placement for discrete objects.
Which one do I need?
| You need... | Use |
|---|---|
Connected 2D ground/road/floor/wall visuals that live in a TileSet |
2D terrain |
| An object with its own script/state/selection/health/inventory | Scene object |
| To move/rotate/flip/demolish one placed instance at a time | Scene object |
| To paint 2D regions (LINE/rectangle/flood) | 2D terrain |
| A line of repeated but independent props | Scene objects with LINE enabled |
| 3D building/fence/window/prop placement | Scene object |
| 3D GRID CELL/EDGE/FACE/CORNER/TOP/socket structures | 3D scene object |
| An object anywhere in 3D space, not on a grid | SMOOTH scene object |
Quick rule of thumb: if you could pick it up and move it in real life, it's a scene object. If it's just the shape of the ground, it's terrain.
2D terrain
Terrain painting fits when the cell pattern matters more than individual objects.
Typical examples:
- roads and connected ground;
- floor/wall/hedge patterns drawn through a TileSet;
- large areas of repeated static visuals/collision.
Supported terrain brushes:
SINGLELINERECTANGLE_FILLRECTANGLE_OUTLINEFLOOD_FILL
While you're previewing, the real TileMapLayer isn't touched — only commit paints it.
Game-specific terrain behavior
A terrain cell is not a scene object — it has no script, health, or Manipulatable component of its own. If your game needs durability, ownership, resource costs, or interaction per cell, keep that game state in your own data and use the terrain paint/remove hooks to keep it in sync.
Scene objects
Use a ScenePlacementEntry when each placement needs to be its own thing.
Typical examples:
- buildings and foundations;
- crates, lamps, furniture;
- interactive doors/gates;
- NPCs, spawners, interactables;
- 3D floors, walls, fences, windows, props.
Scene objects can take part in object validation, manipulation, stable placement identity, mounts/sockets, refunds, and saving.
Fences: choose by behavior and dimension
“Fence” is not automatically terrain or object placement.
2D
Use terrain when the fence is mostly a connected TileSet visual with static collision. Use scene objects when each segment needs its own script/state/manipulation, or when object LINE placement fits better.
3D
Use scene objects. GRID EDGE placement is the supported 6.0 way to build cell-aligned fence/wall segments; SMOOTH world sockets handle free-positioned joins.
Terrain rules vs object rules
- Object placement checks the object validation/rules pipeline (placeable/profile data).
- Terrain painting checks the terrain validation/paint gates/hooks.
These are two separate pipelines — don't copy a gameplay rule from one into the other. If both need the same restriction, put the shared game data in a reusable provider/bridge they can both read.
Save/load
- Scene objects are saved through stable placement identity and the placement-world persistence flow.
- 2D terrain is saved through the terrain/tile persistence that fits your
TileMapLayerand game save format.
Your game owns the complete save-file/profile/cloud-save schema — the plugin only contributes its part.