Grid Placement 6.0 intentionally supports a conservative map-provider transform contract so preview, collision, occupancy, manipulation, and restore cannot disagree.
| Provider | Translation | Rotation | Scale |
|---|---|---|---|
TileMapLayer (2D GRID) |
Supported, including world offsets and negative coordinates | Not certified | Not certified |
GridMap (3D GRID) |
Supported, including world offsets and negative coordinates | Not certified, including provider yaw | Not certified |
| SMOOTH direct world placement | Uses finite world positions directly | Object rotation follows the selected placement mode | Map-provider transform does not apply when no map provider is used |
Why rotation and scale fail closed
Some helpers can transform cell centers correctly, but the full 6.0 placement pipeline does not certify every rotated/scaled-provider combination across collision, indicators, EDGE/FACE orientation, occupancy, manipulation, and restore.
Therefore the supported 6.0 contract is simple:
- provider translation is supported;
- provider rotation/scale is rejected for GRID workflows;
- custom cell sizes and negative cell coordinates are independent of this restriction.
Do not work around this guard by bypassing the host. That can make the preview appear correct while another subsystem still interprets provider-local axes differently.
Failure behavior
Canonical GridPlacementHost dispatch rejects an unsupported provider transform through the normal missing-dependency/result path. Diagnostics identify the unsupported provider transform and direct the project to restore identity rotation/scale on the provider and relevant transformed ancestors.
This restriction is a certified support boundary, not a claim that rotated/scaled providers can never be supported in a future release.