Development ⚠️ GridPlacement 6.0 (GECS) is in active development. This is the GDScript ECS architecture.

Placement Lifecycle

End-to-end placement flow in 6.0 from request creation to execution and events.

This guide describes the normal lifecycle for placing a single object.

Step 1: Create or update request

PlacementRequestComponent captures placement intent:

  • target position
  • rotation
  • scale
  • request activity and timing metadata

Step 2: Validate request

PlacementValidationSystem processes active requests and writes result into request.validation_result.

Validation combines:

  • physics collision checks
  • optional rule callbacks (PlacementRuleComponent)
  • basic request sanity checks

Step 3: Update preview visuals

PlacementPreviewSystem updates preview state using validation output:

  • valid → preview in VALID state
  • invalid → preview in INVALID state
  • no result yet → NEUTRAL

Step 4: Execute successful request

PlacementExecutionSystem converts successful requests to PlacementCommandComponent, executes action, and updates placement relationships.

Step 5: Emit events

PlacementSignalBus events are the primary integration point for gameplay/UI responses.

Failure path

When validation fails repeatedly, placement attempts can lock via PlacementComponent lock fields and failure events are emitted with issue details.