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 ResourceMembers
| Name | Kind | Summary |
|---|---|---|
snap_mode | Property | Where 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_requirement | Property | Whether 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_topology | Property | CORNER only. How many compatible pieces must be next to this one when attachment is REQUIRED. See CornerHostTopology. |
occupy_columns | Property | CELL 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_cell | Property | CELL 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_attached | Property | CELL 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_support | Property | CELL 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_span | Property | CELL 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_support | Property | CELL 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_height | Property | FACE 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_faces | Property | When 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_facing | Property | Deprecated: use edge_dressing. When edge_dressing is DEFAULT, turning this on acts like OUTWARD. |
edge_dressing | Property | EDGE only. Which way the piece's decorated side faces. See EdgeDressing. |
require_edge_span_floor_support | Property | EDGE 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. |
family | Property | What this piece is, for other pieces to attach to (for example "floor"). |
GROUND_FAMILY | Field | Reserved 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_with | Property | Families this piece may attach to. Order does not matter. GROUND_FAMILY is reserved and means the level's own ground. |
replace_group | Property | Pieces 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_snap | Property | Deprecated: use attachment_requirement. When attachment_requirement is INHERIT, turning this on acts like REQUIRED. Kept so older profiles load unchanged. |
resolve_attachment | Method | |
resolve_corner_topology | Method | |
effective_edge_dressing | Method | |
requires_attachment | Method | |
seam_close_to_partner | Property | CELL 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_sockets | Property | SMOOTH 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_radius | Property | SMOOTH only. How close, in world units, this piece must be to a socket to snap to it. 0 turns snapping off. |
smooth_socket_extent | Property | SMOOTH only. Half the length (ENDS) or half the side (PERIMETER) of this piece's sockets, in world units. |
face_mount_anchor | Property | FACE 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_outward | Property | FACE 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_symmetric | Property | Turn 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_family | Method | |
effective_replace_group | Method | |
provides_smooth_role | Method | |
consume_smooth_roles | Method |