Skip to content

Class

PlacementValidation3D

Generated GDScript class reference for GridPlacement.PlacementValidation3D.

Status
Current
Version
v6.3.0
Source updated
2026-10-29
Generated on
2026-10-29

6.3. These pages document the 6.3 release, where placeable is now entry (what changed) and PlacementOwner is deprecated (migration). Still on 6.2? Your version's guides ship inside the plugin itself, under addons/grid_placement/guides/; the 6.2 URLs on this site now redirect to this series.

Read-only 3D placement validity policy seam. Runtime placement and development proof tooling consume this evaluator through one shared policy implementation. Everything here is static and side-effect free: callers supply explicit read-only state and receive typed reasons, per-cell evidence, and the resolved support facts used by preview/commit.

Source: addons/grid_placement/systems/building/3d/placement_validation_3d.gd

Syntax

class PlacementValidation3D extends RefCounted

Members

NameKindSummary
GRID_BOUNDFieldTyped rejection reasons for one placement attempt. A footprint tile has no supporting wall within [const WALL_SUPPORT_RADIUS]. A roof cap tile sits outside [const ROOF_SPAN_RADIUS] of any roof slope. The anchor cell sits outside the GridMap bounds. A footprint cell has no accepting COLUMN provider directly underneath it (PlacementSnapProfile3D.require_column_support). GridMap components are only addressable inside +/-2^20; cells at or past the bound (including the INT_MAX MISS sentinel) fail closed here so no GridMap call ever sees them.
SPAN_OVERLAP_EPSILONFieldMinimum span penetration (meters) that counts as an EDGE overlap. Touching end-to-end (zero-area contact) stays legal; true overlaps penetrate by decimeters, so a millimeter guard only absorbs float dust.
reasonsPropertyStructured result of one validation attempt. Bitmask of Reason flags.
issuesPropertyHuman-readable aggregate issue strings, layered on reasons.
cell_issuesPropertyCELL-only projection: footprint cell -> blocking issue strings.
footprint_cellsPropertyFootprint cells the CELL policy checked.
has_grid_surfacePropertyTrue once the column survey recorded grid_min_surface and grid_max_surface (0.0 when a bound had no ground).
grid_min_surfaceProperty
grid_max_surfaceProperty
support_modePropertyObjectPlacementSettings3D.SurfaceSupportMode, or -1 before the support stage ran.
support_authorityPropertyWhich policy decided support: &"gridmap", &"gridmap_fallback", &"physics", &"physics_required_unavailable", or empty before the support stage ran.
supportPropertyPhysics support evaluation, or null when physics was not sampled.
conflict_idPropertyFirst conflicting world record id, empty without a world conflict.
conflict_coordinate_modePropertyCoordinate mode of the conflicting record (-1 when unknown): GRID means same-mode GRID contention, SMOOTH means a cross-mode overlap.
conflict_cellsProperty
snap_partner_dirsPropertyNeighbor directions holding a compatible snap partner.
unsupported_cellsPropertyFootprint cells lacking the attachment/wall/roof support they need.
cleared_decorPropertyLive clearable-decor roots the commit removes before instantiating.
evidencePropertyRead-only Dictionary projection of the typed evidence for diagnostics and proof tooling. Keys appear only for evidence that was recorded.
has_physics_anchorMethod
is_validMethod
has_reasonMethod
rejectMethod
reject_atMethod
add_cell_issueMethod
cell_issue_mapMethod
gridPropertyRead-only context for one validation attempt.
settingsProperty
world_3dPropertyPhysics world used only when surface support mode opts into physics.
world_registryProperty
preview_yaw_stepsProperty
mountsPropertyCommitted GRID mounts the attempt is checked against.
excluded_nodePropertyA live node treated as ABSENT by every host lookup, without mutating mounts. Lets a caller ask the counterfactual a removal needs: "would this CORNER still be hosted if mounts had no excluded_node?". Null for ordinary validation, where nothing is excluded and every committed mount counts. (#1529)
validate_cellMethod
resultProperty
cellsProperty
profileProperty
occupy_columnsProperty
surveyProperty
policyProperty
policy_issueProperty
min_surfacePropertyGridMap surface range of one CELL footprint, read by the support stage.
max_surfaceProperty
missing_groundProperty
surveyProperty
floating_columnsProperty
keyProperty
occupantProperty
existingProperty
surfaceProperty
top_rowProperty
belowProperty
target_colProperty
mountProperty
mount_profileProperty
mount_rowProperty
mountProperty
rootProperty
support_modeProperty
use_grid_authorityProperty
requiredProperty
samplesProperty
supportProperty
settingsProperty
requires_groundProperty
surfaceProperty
limitProperty
conflict_cellsProperty
first_conflictProperty
conflictProperty
snap_issueProperty
lackingProperty
partner_dirsProperty
lacking_supportProperty
lacking_spanProperty
lacking_columnProperty
validate_cell_mapMethod
validate_edgeMethod
resultProperty
edge_keyProperty
span_issueProperty
support_issueProperty
profileProperty
span_support_issueProperty
cell_keyProperty
edge_requires_supportMethod
profileProperty
edge_has_hostsMethod
cell_has_hostsMethod
profileProperty
cellsProperty
top_rowProperty
top_has_hostsMethod
profileProperty
edge_keyProperty
familyProperty
top_keyProperty
cell_requires_supportMethod
profileProperty
spanProperty
unsupportedProperty
labelsProperty
edge_span_cellsMethod
spanProperty
cellsProperty
gridProperty
world_yProperty
local_minProperty
local_maxProperty
localProperty
local_spanProperty
run_axisProperty
cell_sizeProperty
min_cellProperty
radiusProperty
halfProperty
cellProperty
local_centerProperty
cell_rectProperty
outProperty
mountProperty
famProperty
overlay_columns_for_familyMethod
outProperty
occupantProperty
familiesProperty
heldProperty
is_same_type_edge_replaceMethod
occupying_familyProperty
profileProperty
occupantProperty
mountProperty
occupant_groupProperty
candidateProperty
nodeProperty
mountProperty
otherProperty
emptyProperty
sizeProperty
measuredProperty
centerProperty
localProperty
yawProperty
validate_faceMethod
resultProperty
face_keyProperty
height_bandProperty
occupancy_keyProperty
profileProperty
familyProperty
validate_topMethod
resultProperty
top_keyProperty
profileProperty
existing_familyProperty
can_stackProperty
deckProperty
wallsProperty
pairProperty
edge_keyProperty
familyProperty
validate_cornerMethod
resultProperty
keyProperty
profileProperty
validate_move_dropMethod
missingProperty
profileProperty
edge_keyProperty
takenProperty
edge_resultProperty
face_keyProperty
cell_resultProperty
cellsProperty
keyProperty
player_move_failureMethod
eastProperty
westProperty
east_westProperty
northProperty
southProperty
north_southProperty
emptyProperty
eastProperty
westProperty
east_westProperty
northProperty
southProperty
north_southProperty
emptyProperty
nodeProperty
nodeProperty
settingsProperty
corner_has_hostsMethod
settingsProperty
topologyProperty
candidatesProperty
cell_sizeProperty
centerProperty
pointProperty
TOUCH_EPSILONField
edge_nodeProperty
boxProperty
hostProperty
x_neighborProperty
z_neighborProperty
x_cellsProperty
z_cellsProperty
x_yawProperty
z_yawProperty
nodeProperty
componentsProperty
instanceProperty
mountProperty
compatible_neighbor_dirsMethod
dirsProperty
WALL_SUPPORT_RADIUSFieldChebyshev radius (cells) of the wall-support zone for CELL pieces with PlacementSnapProfile3D.require_wall_support. The house roof slopes span ~7.6 m from a 2x2 anchor, so the walls under the eaves sit up to 2 cells from the anchor cells; radius 2 keeps the canonical deck + wall ring green while a bare deck reads red.
footprint_cells_without_wall_supportMethod
lackingProperty
ROOF_SPAN_RADIUSFieldChebyshev radius (cells) of the roof-span zone for CELL pieces with PlacementSnapProfile3D.require_roof_span. Roof slope meshes span ~7.6 m from a 2x2 anchor, so a gable capping the span end sits up to 3 cells from the nearest roof column; radius 4 keeps the canonical house green while a gable in a roofless ring reads red.
column_keyProperty
footprint_cells_without_column_supportMethod
lackingProperty
footprint_cells_without_roof_spanMethod
lackingProperty
zoneProperty
unionsProperty
profileProperty
requires_column_supportProperty
yawProperty
mountProperty
occupant_profileProperty
seenProperty
zoneProperty
keyProperty
footprint_cells_without_supportMethod
lackingProperty
offsetsProperty
neighborProperty
neighbor_keyProperty
reasonProperty
issueProperty
lifecycle_reason_forMethod