Skip to content

Grid Placement v6.0

Grid vs Smooth Placement

When to use GRID versus SMOOTH placement, and how occupancy works in each.

Status
Current
Version
v6.0
Source updated
Active v6.0 guide line from Grid Placement repo
Generated on
2026-09-01

Grid Placement has two object coordinate modes:

  • GRID — snap to a 2D tile/3D GridMap lattice and use grid-keyed occupancy/mounts.
  • SMOOTH — place at world-space positions with footprint overlap validation and optional world-space sockets.

GRID is the default. Use SMOOTH only when free positioning is part of the desired behavior.

Choose GRID when

  • objects must tile or align predictably;
  • cell/footprint occupancy is gameplay-significant;
  • 3D structures use CELL, EDGE, or FACE/socket mounts;
  • fences/walls/corners should share canonical grid edges;
  • deterministic grid coordinates matter for rules/save data.

2D terrain painting is also grid-based, but it is a separate terrain workflow rather than SMOOTH-vs-GRID object placement.

Choose SMOOTH when

  • exact cursor/world position matters more than cell alignment;
  • clutter/organic props should not look grid-locked;
  • 3D GridMap cells are too coarse for the object;
  • object-to-object joins should use optional world-space sockets rather than CELL/EDGE/FACE keys.

SMOOTH still validates occupancy. “Free placement” means free coordinates, not “ignore collisions/overlap.”

Switching mode

Coordinate mode belongs to the PlacementSession:

session.placement_coordinate_mode= PlacementEnums.PlacementCoordinateMode.SMOOTH
session.placement_coordinate_mode= PlacementEnums.PlacementCoordinateMode.GRID

This is independent from interaction actions such as place/move/demolish.

Footprints

SMOOTH entries need an explicit non-zero world footprint so overlap checks have geometry to validate.

entry.footprint_2d= Vector2(32,32)
entry.footprint_3d_world= Vector3(2,2,2)

Missing footprint data should fail closed rather than silently allowing overlapping placement.

GRID uses the entry's grid footprint/mount occupancy instead.

Occupancy model

Mode Primary occupancy authority
GRID Canonical cell/footprint/EDGE/FACE keys in the shared placement world.
SMOOTH World-space footprint occupancy in the shared placement world.

Optional physics queries can add environmental obstacle/support checks, but physics bodies are not a replacement for plugin placement identity/occupancy.

GRID and SMOOTH objects share the same placement world, so cross-mode conflicts can be rejected consistently where the supported bounds/evidence overlap.

3D mounts vs world sockets

Do not mix the two concepts:

  • GRID EDGE/FACE — lattice-authoritative mount keys.
  • SMOOTH sockets — provider-owned world-space snap points.

A placeable may support both workflows through configuration, but a GRID edge is not the same occupancy key as a SMOOTH socket.

Move, remove, save, restore

Both modes participate in the normal lifecycle:

  • move validates the new position before changing authoritative occupancy;
  • cancel leaves the committed object unchanged;
  • demolition removes placement/occupancy state;
  • save/restore rebuilds GRID, SMOOTH, mounts, and identity as one coordinated placement world.

See Save and Load.

Quick decision table

Need Use
Tile/cell aligned building GRID
CELL/EDGE/FACE modular structure GRID
2D terrain brush 2D terrain workflow (grid-based)
Free furniture/clutter SMOOTH
Organic 3D prop SMOOTH
World-space magnetic object join SMOOTH + sockets
Building valid on sloped support but still upright GRID + slope/support policy