Skip to content

Class

PlacementSnapProfile3D

Generated GDScript class reference for GridPlacement.PlacementSnapProfile3D.

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.

How a 3D scene_entry attaches to the grid and to other placed pieces. Assign it in ScenePlacementEntry.snap_profile_3d. family says what this piece is; snaps_with lists the families it may attach to. The piece being placed checks its own snaps_with against the family of pieces already placed. Family names are up to you ("floor", "wall", "wall_exterior", ...). See the 3D object placement guide (addons/grid_placement/guides/3d-object-placement.md).

Source: addons/grid_placement/placement/scene_entry/placement_snap_profile_3d.gd

Syntax

class PlacementSnapProfile3D extends Resource

Members

NameKindSummary
snap_modePropertyWhere a piece attaches: - CELL: fills whole grid cells, such as foundations, floors, and furniture. Turn off occupy_columns for pieces stacked on an existing footprint, such as roofs and gable ends. - EDGE: sits on one of the four edges of a cell, such as wall panels and fences. The piece turns to run along the edge. - FACE: hangs on a wall face at mount_height, such as paintings, shelves, and sconces. The piece turns to face out from the wall. - CORNER: sits where four cells meet, such as corner posts. - TOP: sits on top of an EDGE wall, such as roof planes and gables. A wall and the piece on top of it can both be placed. Which way an EDGE piece's decorated (+Z) side faces. DEFAULT runs along the edge, for symmetric pieces. OUTWARD faces away from the host cell and INWARD faces toward it. Sockets a piece offers in SMOOTH (free) placement. Combine flags. Where this piece attaches. See SnapMode.
attachment_requirementPropertyWhether a piece must attach to a compatible piece. INHERIT uses ObjectPlacementSettings3D.default_attachment_requirement. OPTIONAL allows free placement. REQUIRED needs a compatible piece to attach to. How many pieces a CORNER piece needs next to it when attachment is REQUIRED. ANY_ONE needs one compatible piece. TWO_ORTHOGONAL needs two at right angles. INHERIT uses ObjectPlacementSettings3D.default_corner_host_topology. Whether this piece must attach to a compatible piece. INHERIT uses the default from ObjectPlacementSettings3D. See AttachmentRequirement.
corner_host_topologyPropertyCORNER only. How many compatible pieces must be next to this one when attachment is REQUIRED. See CornerHostTopology.
occupy_columnsPropertyCELL only. When on (default), the piece claims its cells and blocks other CELL pieces there. Turn off for layers that share cells with other pieces, such as floors under furniture or roofs over rooms. Other pieces can still attach to it.
require_ground_cellPropertyCELL only. When on (default), every cell under the piece needs a GridMap ground tile. Applies only if ObjectPlacementSettings3D.require_ground_cell is also on. Turn off for pieces held up by their neighbors rather than the ground, such as walls.
require_all_cells_attachedPropertyCELL only. When on, every cell of a multi-cell piece needs its own compatible neighbor, and the cells without one are marked. When off (default), one compatible neighbor anywhere around the piece is enough.
require_wall_supportPropertyCELL only. When on, every cell of the piece needs a wall (an EDGE piece with family "wall") within 2 cells, counting diagonals. Use it for raised pieces such as roof slopes so they show as invalid until walls hold them up. This is a simple distance check, not a structural simulation.
require_roof_spanPropertyCELL only. When on, every cell of the piece must be within 4 cells of a piece with family "roof", counting diagonals. Use it for gable ends so they need a roof to close off. Do not set it on roof slopes, or the first slope could never be placed.
require_column_supportPropertyCELL only. When on, every cell of the piece needs a provider underneath it: a placed piece whose family is in snaps_with (such as a room on a foundation), or the level's own ground when snaps_with lists GROUND_FAMILY (such as a crate that stands on the ground or stacks on another crate). Only that column counts, not the cells next door. Use it for pieces meant to rest on top of another placed piece.
mount_heightPropertyFACE only. How high the piece hangs, in GridMap cell heights above the surface of the piece it hangs on. 0 is that surface.
provides_mount_facesPropertyWhen on, FACE pieces (such as paintings) can hang on this piece's sides. Works for CELL pieces with rectangular footprints and for EDGE pieces.
edge_outward_facingPropertyDeprecated: use edge_dressing. When edge_dressing is DEFAULT, turning this on acts like OUTWARD.
edge_dressingPropertyEDGE only. Which way the piece's decorated side faces. See EdgeDressing.
require_edge_span_floor_supportPropertyEDGE only. When on, every cell the piece spans on its host side must have a piece with family "floor". Use it for walls that must stand on a floor.
familyPropertyWhat this piece is, for other pieces to attach to (for example "floor").
GROUND_FAMILYFieldReserved name for the level's own ground. List it in snaps_with to let a piece rest on the terrain as well as on a placed piece, such as a crate that may stand on the ground or stack on another crate. It reads the GridMap ground tiles the column rests on, the same read require_ground_cell uses; a level whose support comes from physics alone offers no ground.
snaps_withPropertyFamilies this piece may attach to. Order does not matter. GROUND_FAMILY is reserved and means the level's own ground.
replace_groupPropertyPieces with the same replace group can be placed over each other to swap one for the other. When empty (default), family is used. Set it when pieces have different families but should still swap, such as door frames (family "door") replacing wall panels (family "wall").
require_adjacent_snapPropertyDeprecated: use attachment_requirement. When attachment_requirement is INHERIT, turning this on acts like REQUIRED. Kept so older profiles load unchanged.
resolve_attachmentMethod
resolve_corner_topologyMethod
effective_edge_dressingMethod
requires_attachmentMethod
seam_close_to_partnerPropertyCELL only. When on, the piece shifts toward a compatible neighbor so their meshes meet on the shared grid line with no gap. Needs ScenePlacementEntry.seam_bounds_3d; without it nothing changes. Meshes centered on their origin do not move.
smooth_socketsPropertySMOOTH only. Sockets this piece offers to other pieces once placed. Combine flags, for example PERIMETER and UP for a floor. NONE offers none.
smooth_snap_radiusPropertySMOOTH only. How close, in world units, this piece must be to a socket to snap to it. 0 turns snapping off.
smooth_socket_extentPropertySMOOTH only. Half the length (ENDS) or half the side (PERIMETER) of this piece's sockets, in world units.
face_mount_anchorPropertyFACE only. Optional name of a Node3D child that marks the point to put against the wall. Its origin lands on the wall's face socket and its -Z axis points out from the wall. When both pieces have markers, the piece sits exactly flush.
face_mount_outwardPropertyFACE only. When on, the piece mounts on the side of the wall that was clicked. Use it for one-sided pieces such as shutters and paintings. Leave off for thin walls that pieces straddle.
face_socket_symmetricPropertyTurn on only if this piece's mesh looks the same from every side. FACE pieces can then hang on any side using one face socket. Leave off for other meshes, such as rectangular walls, or hung pieces can end up inside the mesh.
accepts_familyMethod
effective_replace_groupMethod
provides_smooth_roleMethod
consume_smooth_rolesMethod